问题描述
试题编号: | 201312-1 |
试题名称: | 出现次数最多的数 |
时间限制: | 1.0s |
内存限制: | 256.0MB |
问题描述: | 问题描述 给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。 输入格式 输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数。 输出格式 输出这n个次数中出现次数最多的数。如果这样的数有多个,输出其中最小的一个。 样例输入 6 样例输出 10 |
代码
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int a[1000],n;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
sort(a,a+n); //数组中的数从小到大排序
int mcount=0,count=0;
int temp=a[0],p=temp;
for(int i=0;i<n;i++)
{
if(a[i]==temp) //统计temp出现的次数
{
count++;
}
else //数组已经有序,不相等时不需要继续向后比较,此时要判断修改temp与mcount
{
if(count>mcount)
{
mcount=count;
p=temp;
}
temp=a[i];
count=1;
}
}
cout<<p<<endl;
return 0;
}
测试结果