The most frequent number
时间限制: 1秒 内存限制: 64M
Problem Description
Given n integers, can you find the most frequent one? Now let’s think about this problem.
Input
This problem contains multiple test cases.
For each test case, the first line is an integer n (1 <= n <= 100000), then the next line has n integers, every of which is between -10^9 to 10^9.
The input is ended by EOF.
Output
For each test case, please output the most frequent number. If there is more than one solution, please output the minimum one.
Sample Input
6
1 2 2 2 3 5
3
-1 -1 -1
Sample Output
2
-1
排一次序,遍历一遍。ac。
#include <stdio.h>
#include <stdlib.h>
int cmp(const void *a,const void *b){
return (*(int *)a) - (*(int *)b);
}
int main(int argc, char *argv[])
{
int a[100100];
int n;
int tem,tem_befor;
int max,max_befor;
//FILE *fp;
//fp = freopen("in.txt","r",stdin);
while(~scanf("%d",&n)){
for(int i = 0;i < n;++i){
scanf("%d",&a[i]);
}
qsort(a,n,sizeof(int),cmp);
tem = a[0];
tem_befor = a[0];
max = 1;
max_befor = 0;
for(int i = 1; i < n;++i){
if(tem == a[i]){
++max;
}else{
if(max > max_befor){
max_befor = max;
tem_befor = tem;
}
tem = a[i];
max = 1;
}
}
printf("%d\n",max > max_befor ? tem:tem_befor);
}
return 0;
}
本文介绍了一个算法问题:如何从一组整数中找出出现频率最高的数。通过排序和遍历的方法,实现了高效的查找,并展示了完整的C语言实现代码。

1411

被折叠的 条评论
为什么被折叠?



