问题描述
试题编号: | 201312-1 |
试题名称: | 出现次数最多的数 |
时间限制: | 1.0s |
内存限制: | 256.0MB |
问题描述: | 问题描述 给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。 输入格式 输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数。 输出格式 输出这n个次数中出现次数最多的数。如果这样的数有多个,输出其中最小的一个。 样例输入 6 样例输出 10 |
这道题很简单,我们只需建立一个类似于桶的数组,因为我们发现si的取值范围很小,我们就建立一个data数组报存每个数的出现次数,动态更新最大次数和出现最大次数的那个数即可。具体代码如下:
AC Code
#include<cstdio>
int data[10001]={0};
int n,maxi=0,value,goal=1e9;
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&value);
data[value]++;
if(data[value]==maxi && value<goal)
goal=value;
else if(data[value]>maxi){
goal=value;
maxi=data[value];
}
}
printf("%d",goal);
return 0;
}
评测结果: