BZOJ 2456: mode
解题思路
喆巨考我的题,我这么菜当然瞬间被考住,想了半天没想出来,后来喆巨讲了才突然大彻大悟。。
思路就是因为众数次数一定大于其他数出现次数的和,就可以拿其他数抵消众数,cnt为当前答案下前面这个答案比其他数多的情况。
代码
int n,cnt,ans,k;
int main(){
__builtin_scanf("%d",&n);
while(n--){
__builtin_scanf("%d",&k);
if(!cnt) ans=k,cnt=1;
else if(k==ans) cnt++;
else if(k!=ans) cnt--;
}
__builtin_printf("%d",ans);
return 0;
}