这道题要注意的就是要所以的数不一定都是正数。
用简单的dp来写如果你想用数组来存也可以,但是要把所有的数分成大于零和小于零两个数组,然后再dp。
但是我发现可以哦用一种map来它可以存字符为下表,当然也能用负数。
#include <stdio.h>
#include <string.h>
#include <map>
using namespace std;
int main()
{
int n;
map<int ,int >m;
while(~scanf("%d",&n))
{
int ok,k;
for(int i =0; i<n;i++)
{
scanf("%d",&k);
m[k]++;
if(m[k]==(n+1)/2)
{
ok =k;
}
}
printf("%d\n",ok);
}
return 0;
}