不用数组,解决众数问题(前提 :众数出现的次数必须大于n/2)

来源:互联网 发布:js done方法 编辑:程序博客网 时间:2024/05/21 04:00

之前参加HAUT周赛

内存限制4mb

用数组超时,怎么办?

题目:


爱莉学姐回到家,把n种糖果分别放到我的嘴里,第i种糖果有mi个,她想know: mi中出现最多的那个数是what?can you tell her?


《《《《《cin》》》》》

众数出现的次数必须大于n/2


第一行输入一个整数n (1<=n<=1E6)

接下来一行n个整数 mi (1<=MI<=1E9) 表示第i种糖果的个数,整数之间用空格隔开


》》》》》cout《《《《


输出mi中出现次数最多的那个数,占一行


——————样例输入————————


5

10 10 10 20 30


——————样例输出————————


10


****************************************************************************************

#include<stdio.h>int main(){int n,t,x,top;scanf("%d",&n);top=t=0;for(int i=1;i<=n;++i){scanf("%d",&x);if(x==t)top++;else if(top==0){t=x;top=1;}else top--;}printf("%d\n",t);return 0;}




原创粉丝点击