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);
    }
  • 相关阅读:
    hbase java api
    hbase
    误删/usr文件夹解决办法
    死锁问题 代码示例
    H2O 生成 多线程并发控制 Semaphore
    多线程 打印零与奇偶数
    多线程交替打印 采用Semaphore
    多线程按顺序执行
    判断回文数
    整数反转
  • 原文地址:https://www.cnblogs.com/meelo/p/7662133.html
Copyright © 2011-2022 走看看