who is the best?
题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=5123
解题思路:
BestCoder官方题解:
我们对于每个 ai 都进行计数,即 b[ai]++ ,如此之后,我们可以一个循环语句 i=1−>n 来寻找最大的 bi ,注意此时应是 bi>MAX ,而不是 bi≤MAX ,这样才能保证出现的是编号最小的。另外需要注意的是每次做完后数组应当清0,否则会影响下次的答案,由于各种非确定性因素我在小数据就已经把没清0的程序卡死了。不得不承认自己刷题的能力退步了,这道水题,当时自己竟然自己花了20分钟才解出来,看来我得更加努力才行呀!
AC代码:
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int main(){
int T;
scanf("%d",&T);
int vis[110];
while(T--){
int n,x,ans = 0,tmp;
scanf("%d",&n);
memset(vis,0,sizeof(vis));
for(int i = 1; i <= n; i++){
scanf("%d",&x);
vis[x]++;
}
for(int i = 1; i <= n; i++){
if(ans < vis[i]){
tmp = i;
ans = vis[i];
}
}
printf("%d\n",tmp);
}
return 0;
}