题目描述
传送门
题解
卡内存,谁知道连iostream和ctring都不能开= =,涨姿势= =
注意这里众数的概念:大于 n div 2 那么每次把不同的两个数相抵消,最后剩下的那个一定是“众数”。
代码
#include<cstdio>
using namespace std;
int n,num,ans,x;
int main(){
scanf("%d",&n);
for (int i=1;i<=n;++i){
scanf("%d",&x);
if (!num){
ans=x;
num=1;
continue;
}
if (x==ans)
num++;
else
num--;
}
printf("%d\n",ans);
}
总结
这种题有一些奇怪的卡点挂了就挂了,就当是涨姿势= = 然而思路能不能自己想出来呢?