• ACM 众数问题


    众数问题

    时间限制:3000 ms  |  内存限制:65535 KB
    难度:3
     
    描述

    所谓众数,就是对于给定的含有N个元素的多重集合,每个元素在S中出现次数最多的成为该元素的重数,

    多重集合S重的重数最大的元素成为众数。例如:S={1,2,2,2,3,5},则多重集S的众数是2,其重数为3。

    现在你的任务是:对于给定的由m个自然数组成的多重集S,计算出S的众数及其重数。

     
    输入
    第一行为n,表示测试数据组数。(n<30)
    每组测试的第一行是一个整数m,表示多重集S中元素的个数为m
    接下来的一行中给出m(m<100)个不大于10万的自然数
    (不会出现不同元素出现的次数相同的情况,如:S={11,11,22,22,33,33})。
    输出
    每组测试数据输出一行,包含两个数,第一个是众数,第二个是其重数,中间以空格隔开。
    样例输入
    1
    6
    1 2 2 2 3 5
    样例输出
    2 3
    #include <iostream>
    #include <vector>
    #include <map>
    #include <algorithm>
    
    using namespace std;
    
    int main(){
        int n;
        cin >> n ;
        while(n--){
            int m;
            cin >>m;
            map<int,int> numMap;
            int maxKey=0,maxCnt=0;
            for(int i = 0; i < m; ++ i){
                int a;
                cin >>  a;
                if(numMap.find(a)!=numMap.end()) numMap[a]++;
                else numMap.insert(make_pair(a,1));
                if(maxCnt < numMap[a]){
                    maxCnt = numMap[a];
                    maxKey = a;
                }
            }
            cout<< maxKey<<" "<<maxCnt<<endl;
        }
    }


  • 相关阅读:
    UNIX 高手的另外 10 个习惯
    python中的cls到底指的是什么
    一篇文章搞懂Python装饰器所有用法
    sysbench 压测
    python面向对象进阶
    python 学生表
    搞懂蓝绿发布、灰度发布和滚动发布
    数据库之视图、索引
    Java内存模型(JMM)以及 垃圾回收机制 小结
    Java线程唤醒与阻塞
  • 原文地址:https://www.cnblogs.com/xiongqiangcs/p/3673634.html
Copyright © 2020-2023  润新知