http://www.cnblogs.com/joeylee97/p/6616039.html

引入一个cnt,输入元素与上一个元素相同,cnt增加,否则cnt减少,当cnt为零时记录输入元素,因为所求数字至少出现(N+1)/2次,所以最后记录元素就是所求元素
 #include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<cmath>
#include<algorithm> using namespace std;
const int maxn=1e6+; int n;
int main()
{
while(scanf("%d",&n)!=EOF)
{
int temp,cur,cnt=;
scanf("%d",&temp);
for(int i=;i<n;i++)
{
scanf("%d",&cur);
if(cur==temp)
{
cnt++;
}
else
{
cnt--;
}
if(cnt==)
{
temp=cur;
cnt=;
} }
printf("%d\n",temp);
}
return ;
}
04-09 08:15