先读题:
给定N个整数,请你求出其中的众数都有哪些。
众数,是指一组数据中出现次数最多的数值,有时众数在一组数据中有好几个。
注意,如果所有的数据出现的次数都一样,那么这组数据没有众数。
输入:
输出:
哪个数出现的次数最多,即为这组数的众数。
思路:先输入n和数组a的值,再用其他数组求众数。(由于数组过大,建议使用C语言,不然有超时的风险)
上代码:
#include <cstdio>
using namespace std;
int a[100005],f[1000005],c[1000005];
int main()
{
int n,cnt=0;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
f[a[i]]++;
}
for(int i=1;i<=n;i++)
{
if(cnt<f[i])
cnt=f[i];
}
for(int i=1;i<=n;i++)
if(cnt==f[i])
printf("%d\n",i);
}