题解:
这题还是蛮有意思的,因为内存上限只有1m,所以不能开数组处理。我们发现题目中的众数是大于n/2的,所以我们可以只存一个量,每次读入不同则相互消去,最后剩下的一定是这个众数。
代码如下:
#include<cstdio>
#include<string>
int n,x,y,sum;
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&x);
if(x==y) sum++; else if (!sum) y=x,sum=1; else sum--;
}
printf("%d",y);
return 0;
}