PAT(Advanced) 1054 The Dominant Color C++实现
题目链接
题目大意
给定二维矩阵求出现频率最高的值。
算法思路
借助C++ STL
的unordered_map
容器,统计出现的所有值的频率,输出频率最高的值即可。
AC代码
/*
author : eclipse
email : eclipsecs@qq.com
time : Mon Feb 01 10:53:16 2021
*/
#include <bits/stdc++.h>
using namespace std;
int main(int argc, char const *argv[]) {
int M, N;
scanf("%d%d", &M, &N);
unordered_map<int, int> colorCounter;
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
int color;
scanf("%d", &color);
if (colorCounter.count(color)) {
colorCounter[color]++;
} else {
colorCounter[color] = 1;
}
}
}
int max, maxCounter = 0;
for (unordered_map<int, int>::iterator it = colorCounter.begin(); it != colorCounter.end(); it++) {
if (maxCounter < it->second) {
maxCounter = it->second;
max = it->first;
}
}
printf("%d", max);
return 0;
}
样例输入
5 3
0 0 255 16777215 24
24 24 0 0 24
24 0 24 24 24
样例输出
24
鸣谢
最后
- 由于博主水平有限,不免有疏漏之处,欢迎读者随时批评指正,以免造成不必要的误解!