题意:找众数,且必定存在
思路: 忘记是在什么书上看到过的了, 理论是,
如果存在一个众数:
记录当前拿到的数字,以及个数,如果下个拿到的数字,与标记的数字不等,则个数-1,否则个数+1,如果个数<0,则将当前拿到的数字作为标记数字
#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <queue>
#include <cstring>
#include <string>
#include <cmath>
using namespace std;
typedef long long ll;
const int maxn=1e6+5;
int main()
{
int n,m;
while(cin >>n)
{
int s,num,cnt=1;
cin>>num;
for(int i=2;i<=n;i++)
{
scanf("%d",&s);
if(s!=num)
{
cnt--;
if(cnt<0)
{
num=s;
cnt=1;
}
}
else
cnt++;
}
cout<<num<<endl;
}
return 0;
}