描述
给你n个数,求出该数列的众数。|an|<1e9
输入
输入一个整数T,代表接下来有T组数据,接下来一行为n,代表n个数,然后一行有n个数的数组
输出
求出该数列中的众数
输入样例 1
3
3
1 2 1
5
-5 -8 1 2 -5
6
-999999 -999999 1000 1000 1000 666
输出样例 1
1
-5
1000
提示
注意数据的大小,且数据只有一个答案,n<100,且一定有众数,不存在多个
题目要求找出众数即最多的那个,我们可以先定义一个二维数组并初始化存储不同的数字以及数字的数量,然后输入需要的数据,每输入一个就与存储数组对比是否存在重复,不重复就将其加入到数组中,如果重复则对应的元素的数量加1,最后遍历数组找出数量标记最大的,并输出此最大的哪一位代表的数字。
#include <iostream>
#include <cstring>
using namespace std;
int a[105][2];
int main()
{
int t,n,x;
while(cin>>t)
{
while(t--)
{
memset(a,0,sizeof(a));
cin>>n;
int k=n;
int i=1;
while(n--)
{
int jug=0;
cin>>x;
for(int j=1; j<=k&&a[j]!=0; j++)
{
if(a[j][0]==x)
{
jug=1;
a[j][1]++;
break;
}
}
if(!jug)
a[i++][0]=x;
}
int MAX=-1;
for(int j=1; j<i; j++)
{
if(a[j][1]>MAX)
{
MAX=a[j][1];
k=j;
}
}
cout<<a[k][0]<<endl;
}
}
return 0;
}