【BZOJ 2456】 mode
【题目链接】
【算法】
此题初看是大水题,只需调用std :: sort即可
但是,n最大500000,显然会超时
而且,内存限制1MB,我们连数组也开不了!
那怎么做呢 ?
我们发现,一个非众数和众数可以抵消,因此,暴力扫描一遍即可
【代码】
#include<cstdio> using namespace std; int i,num,n,x,s; int main() { scanf("%d",&n); for (i = 1; i <= n; i++) { scanf("%d",&x); if (num == x) s++; else s--; if (s <= 0) { s = 1; num = x; } } printf("%d\n",num); return 0; }