【题目描述】
对于一个长度为 nn 的序列 {anan} 来说,其众数被定义为出现次数最多的数。
现在给定一个长度为 nn 的序列,请帮忙求出它的众数是多少。
当然众数可能有多个,你只需要输出最小的一个就可以了。
【输入】
第一行输入 nn,第二行输入 nn 个数,n<106n<106,0≤ai≤10000≤ai≤1000。
【输出】
输出众数。
【输入样例】
6
3 5 7 5 3 1
【输出样例】
3
源代码:
#include <stdio.h> #include <string.h> #define N 1000 int count[N+1]; int main(void) { int n, val, i; memset(count, 0, sizeof(count)); scanf("%d", &n); for(i=1; i<=n; i++) { scanf("%d", &val); count[val]++; } int max = count[0], ans=0; for(i=1; i<=N; i++) if(count[i] > max) { max = count[i]; ans = i; } printf("%d\n", ans); return 0; }