CCF CSP真题 出现次数最多的数 题解

时间:2022-04-25 21:31:46

题目:
问题描述
试题编号: 201312-1
试题名称: 出现次数最多的数
时间限制: 1.0s
内存限制: 256.0MB
问题描述:
问题描述
  给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。
输入格式
  输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数。
  输入的第二行有n个整数s1, s2, …, sn (1 ≤ si ≤ 10000, 1 ≤ i ≤ n)。相邻的数用空格分隔。
输出格式
  输出这n个次数中出现次数最多的数。如果这样的数有多个,输出其中最小的一个。
样例输入
6
10 1 10 20 30 20
样例输出
10

思路:
使用STL库中的map

Code:

//出现次数最多的数 8min 
//map的初始化
#include <iostream>
#include <fstream>
#include <map>

using namespace std;
map<int, int> m;

int main(){
// fstream cin("a.txt");
int n,a,maxnum,maxid;
cin>>n;
for(int i = 0; i < n; ++i){
cin>>a;
m[a]++;
}
map<int, int>::iterator it;
for(it = m.begin(); it != m.end(); ++it){
if(it->second > maxnum){
maxnum = it->second;
maxid = it->first;
}
}
cout<<maxid<<endl;

return 0;
}