1054 The Dominant Color (20分)[map]
程序员文章站
2022-06-07 14:39:23
...
By Jalan
文章目录
知识工具需求
数学
数据结构和算法
语言
题干
给m*n个像素点,统计出现最多的颜色
输入条件
m列,n行,
m*n个颜色
输出条件
最多的颜色
例子
例1
输入
5 3
0 0 255 16777215 24
24 24 0 0 24
24 0 24 24 24
输出
24
题解
第一次
思路
本来想的是hash散列做一下的,但是2^24范围还是太大了.又观察到mn范围都很小就用了map做了个统计.
预期时间复杂度
nmlognm
编写用时
8分钟
代码
CPP
#include <bits/stdc++.h>
#include <map>
#include <stdio.h>
#include <vector>
using namespace std;
vector<vector<int>> image;
int main(int argc, char const *argv[])
{
int m,n;
scanf("%d%d",&m,&n);
image.resize(n);
for (int i = 0; i < n; i++)
{
image[i].resize(m);
}
map<int,int> colorCounter;
int colorTemp;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
scanf("%d",&colorTemp);
image[i][j]=colorTemp;
colorCounter[colorTemp]++;
}
}
int max=-1;
int maxcolor;
for (auto &&i : colorCounter)
{
if (i.second>max)
{
max=i.second;
maxcolor=i.first;
}
}
printf("%d",maxcolor);
return 0;
}
运行用时
结尾
看在我写了这么多注释的份上可以给我点个赞嘛,求求惹=]砰砰砰,给我加点写下去的油呀@aaa@qq.com
也欢迎关注我的CSDN账号呀,接下来两个月我应该会按这个格式更新所有的PTA甲级题目
**开心code每一天**
下一篇: 7-4 水仙花数