1054 The Dominant Color (简单题,寻找众数)

目录

题目

测试样例

输入样例

输出样例

提交结果截图

算法描述

带详细注释的源代码


题目

1054 The Dominant Color (简单题,寻找众数)_第1张图片

 题目链接:

1054 The Dominant Color icon-default.png?t=L892https://pintia.cn/problem-sets/994805342720868352/problems/994805422639136768

测试样例

输入样例

5 3
0 0 255 16777215 24
24 24 0 0 24
24 0 24 24 24

输出样例

24

提交结果截图

1054 The Dominant Color (简单题,寻找众数)_第2张图片

算法描述

其实就是将颜色和其出现的次数分别存储,一一对应,本来应该用pair来做的,不过还不怎么会,但是问题不大,vector写也很方便。

带详细注释的源代码

#include 
#include 
#include 
#include 
using namespace std;

int main()
{
    int m, n, tmp, max_color;
    vectorcolor;//存储颜色
    vectorcolor_time;//每种颜色出现的次数
    vector::iterator loc;//返回查找到的位置的向量指针
    cin>>m>>n;
    for(int i = 0; i < n; i++)//行
    {
        for(int j = 0; j < m; j++)//列
        {
            cin>>tmp;
            if((loc = find(color.begin(), color.end(), tmp)) == color.end())
            {   //若是该颜色没有收录
                color.push_back(tmp);//收录该颜色
                color_time.push_back(1);//该颜色出现次数为1
            }
            else    //若是已经收录该颜色,则该颜色出现次数+1
                color_time[distance(color.begin(), loc)]++;
        } 
    }
    max_color = 0;//max_color为出现次数最多的颜色的下标位置
    for(int i = 1; i < color_time.size(); i++)//从第二个颜色开始比较
    {
        if(color_time[i] > color_time[max_color])//若是发现出现次数更多的颜色,更新max_color
            max_color = i;
    }
    cout<

你可能感兴趣的:(PAT,(Advanced,Level),Practice,算法,c语言,c++,PTA,数据结构)