zoukankan      html  css  js  c++  java
  • CCF CSP 201312-1 出现次数最多的数

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址

    CCF CSP 201312-1 出现次数最多的数

    问题描述

      给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。

    输入格式

      输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数。
      输入的第二行有n个整数s1, s2, …, sn (1 ≤ si ≤ 10000, 1 ≤ i ≤ n)。相邻的数用空格分隔。

    输出格式

      输出这n个次数中出现次数最多的数。如果这样的数有多个,输出其中最小的一个。

    样例输入

    6
    10 1 10 20 30 20

    样例输出

    10

    解析

    使用一个数据结构计数,由于数的范围为[1,10000],可以开一个数组,也可以使用map计数。

    每输入一个数更新最优结果即可。

    代码

    C++

    #include <stdio.h>
    #include <map>
    
    using namespace std;
    int main() {
        int N;
        scanf("%d", &N);
        map<int,int> cnt;
        int maxCnt = 0;
        int maxVal = 0;
        for(int n=0; n<N; n++) {
            int t;
            scanf("%d", &t);
            cnt[t]++;
            if(cnt[t]>maxCnt || cnt[t]==maxCnt && t<maxVal) {
                maxCnt = cnt[t];
                maxVal = t;
            }
        }
        printf("%d", maxVal);
    }
  • 相关阅读:
    1、一条sql查询语句的执行过程
    go 内存分配
    GO Json
    gorm CRUD:读写数据
    go 基于切片的队列实现
    go的错误处理
    grpc
    sqlalchemy 判断字段是否存在
    定时函数
    用Python获取Linux资源信息的三种方法
  • 原文地址:https://www.cnblogs.com/meelo/p/7662133.html
Copyright © 2011-2022 走看看