题目描述
传送门
题解
卡内存,谁知道连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); }
总结
这种题有一些奇怪的卡点挂了就挂了,就当是涨姿势= = 然而思路能不能自己想出来呢?