问题描述 |
---|
输入m个数字,输出其中出现次数最多的数字(保证只会有一个数字出现次数最多,不存在并列第一多) |
输入描述 |
一个正整数n,表示n组案例。 每组案例中,首先是一个正整数m,然后是m个整数。 |
输出描述 |
针对每组案例,输出这m个整数中,出现次数最多的数字(保证只有一个数字)。 每组案例输出完都要换行。 |
样例输入复制样例 |
1 5 1 2 3 1 4 |
样例输出 |
1 |
#include <iostream>
#include <vector>
#include <map>
using namespace std;
int main() {
int n;
cin >> n;
while (n--) {
int m;
cin >> m;
vector<int> p(m);
map<int, int> countMap;
// 读入并统计每个数字的出现次数
for (int &num : p) {
cin >> num;
countMap[num]++;
}
// 找到出现次数最多的数字
int maxCount = 0;
int mostFrequent = 0;
for (const auto &pair : countMap) {
if (pair.second > maxCount) {
maxCount = pair.second;
mostFrequent = pair.first;
}
}
cout << mostFrequent << endl;
}
return 0;
}