• 蓝桥杯 出现次数最多的整数 map


    问题描述
      编写一个程序,读入一组整数,这组整数是按照从小到大的顺序排列的,它们的个数N也是由用户输入的,最多不会超过20。然后程序将对这个数组进行统计,把出现次数最多的那个数组元素值打印出来。如果有两个元素值出现的次数相同,即并列第一,那么只打印比较小的那个值。
      输入格式:第一行是一个整数NN<= 20;接下来有N行,每一行表示一个整数,并且按照从小到大的顺序排列。
      输出格式:输出只有一行,即出现次数最多的那个元素值。

    样例输入
    5
    100
    150
    150
    200
    250
    样例输出
    150
    解题思路:用map存储,重点复习c++的基础数据结构的操作
     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 map<int, int> mp; //first数字,second为数字出现的次数 
     4 int main(){
     5     int n;
     6     cin >> n;
     7     if (n <= 0) { //坑点,测试样例有n=0和n=-1的情况,n<=0时,应该什么也不输出直接return 0 
     8         return 0;
     9     }
    10     for (int i = 0; i < n; i++) {
    11         int t; 
    12         cin >> t;
    13         mp[t]++; //这个数出现的次数加一 
    14     }
    15     map<int, int>::iterator it = mp.begin();
    16     int maxx = it -> first; //先默认第一个数出现的次数最大,然后擂台赛不断比较求最大值 
    17     //int sum = 0; 
    18     for (it = mp.begin(); it != mp.end(); it++) {
    19         //sum++;
    20         if (it -> second > mp[maxx]) { //如果遍历到的数的出现次数大于当前选定的数maxx的出现次数 
    21             maxx = it -> first; //将maxx更新为这个数 
    22         }
    23     }
    24     //cout << sum << endl;
    25     cout << maxx << endl; 
    26     return 0;
    27 }
     
  • 相关阅读:
    设置tomcat访问根路径
    关于Java抽象类的理解
    JavaIO
    synchronized关键字
    Java线程池
    Codeforces1478F-Nezzar and Nice Beatmap
    Codeforces1477B-Nezzar and Binary String
    Codeforces1476D Journey
    Codeforces1478D Nezzar and Board
    Codeforces Round #697 (Div. 3)G. Strange Beauty
  • 原文地址:https://www.cnblogs.com/fx1998/p/12598952.html
Copyright © 2020-2023  润新知