zoukankan      html  css  js  c++  java
  • 蓝桥杯 出现次数最多的整数 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 }
     
  • 相关阅读:
    【转】嵌入式程序员应该知道的16个问题
    GetMemory()函数
    Some good questions
    [转]永远做一个有计划的人
    内存分配管理
    c语言面试题(感觉比较好的题目)
    const char*, char const*, char*const的区别
    《论语》《中庸》《大学》经典语录
    洗脑
    python基础之函数参数,名称空间,以及函数嵌套
  • 原文地址:https://www.cnblogs.com/fx1998/p/12598952.html
Copyright © 2011-2022 走看看