题目描述
统计一组数值数据中出现次数最多的数值
示例:
输入
[ 1, 3, 4, 5, 6, 1, 7 ]
输出
1
说明:如果出现相同次数的数值,返回第一个出现的数值
解答代码
#include <vector>
#include <map>
#include <iostream>
using namespace std;
int find(vector<int>& datas) {
map<int, int> m;
int count = 0, val;
for (auto a : datas) {
m[a]++;
}
for (map<int, int>::iterator it = m.begin(); it != m.end(); it++) {
if (it->second > count) {
count = it->second;
val = it->first;
}
}
return val;
}
int main() {
int a[7] = { 1, 5, 3, 5, 3, 2, 4 };
vector<int> v(a, a + 7);
cout << find(v) << endl; // 3
return 0;
}