zoukankan      html  css  js  c++  java
  • ACM题目————STL练习之众数问题

    描述

    所谓众数,就是对于给定的含有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
    这些题其实很简单,不用STL也能AC,但可以作为STL的入门题,练练手^_^
    //Asimple
    #include<iostream>
    #include<cmath>
    #include<map>
    #include<algorithm>
    
    using namespace std;
    int T, n, num;
    
    bool mycmp(const pair<int,int> p1, const pair<int,int> p2)
    {
        return p1.second < p2.second ;
    }
    
    int main()
    {
        cin >> T;
        while( T-- )
        {
            map<int,int> m;
            cin >> n;
            while( n-- )
            {
                cin >> num ;
                m[num] ++ ;
            }
            map<int,int>::iterator i=max_element(m.begin(), m.end(),mycmp);
            cout << i->first << " " << i->second << endl ;
        }
    
        return 0;
    }
    

    特别介绍下 max_element  介个函数。

    max_element(m.begin(), m.end());

    这个函数返回 m 的最大值,  这个m 可以使是向量,string,list,set,map等等,但是对于map来说,要写一个比较函数,注明比较的是第一个值的大小还是第二个值大小,本题中,就是返回第二个值最大的元素。同理 就有min_element。也一样。O(∩_∩)O
    低调做人,高调做事。
  • 相关阅读:
    9、Spring Boot 2.x 集成 Thymeleaf
    【专题】Spring Boot 2.x 面试题
    8、Spring Boot 2.x 服务器部署
    7、Spring Boot 2.x 集成 Redis
    6、Spring Boot 2.x 集成 MyBatis
    5、Spring Boot 2.x 启动原理解析
    4、Spring Boot 2.x 自动配置原理
    3、Spring Boot 2.x 核心技术
    2、Spring Boot 2.x 快速入门
    centOS下安装JDK1.8.60,glassfish4.1.1以及MySQL
  • 原文地址:https://www.cnblogs.com/Asimple/p/5506447.html
Copyright © 2011-2022 走看看