关闭

统计数字出现次数

标签: 算法c++统计数字
31人阅读 评论(0) 收藏 举报
分类:

Description
某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*10^9)。已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。

Input
包含多个测试数据,每个包含n+1行:
第1行是整数n,表示自然数的个数。
第2~n+1行每行一个自然数。
1<=n<=200000,每个数均不超过1 500 000 000(1.5*109)

Output
对每个测试数据输出m行(m为n个自然数中不相同数的个数),按照自然数从小到大的顺序输出。每行输出两个整数,分别是自然数和该数出现的次数,其间用一个空格隔开。

相邻两个测试数据间用一个空行隔开。

Sample Input
Copy sample input to clipboard
8
2
4
2
4
5
100
2
100
Sample Output
2 3
4 2
5 1
100 2

用到的库

map


思路

map<int, int>

前一个int代表数字,后一个代表出现的数字,插进去的时候马上是有序的,如果已经存在,将对应的第二个int的数量加1就行,没有任何的查找

#include <iostream>
#include <map>
using namespace std;

int main() {
    int num;
    long long data;
    int c = 0;

    while(cin >> num) {
        if(c != 0) {
            cout << endl;
        } else {
            c  = 1;
        }
        map<long long, long long> map1;
        for(int i = 0; i < num; i++) {
            cin >> data;
            auto ret = map1.find(data);
            if(ret == map1.end()) {
                map1[data] = 1;
            } else {
                ret->second++;
            }
        }

        for(auto it = map1.begin(); it != map1.end(); it++) {
            cout << it->first << " " << it->second << endl;
        }

    }


    return 0;
}
0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

统计字符串中每个单词出现的次数 for C++

写的有点乱,但是解释的很清楚,认真看应该可以看懂。 #include #include #include using namespace std; void CountWor...
  • qq_28958291
  • qq_28958291
  • 2016-04-27 23:01
  • 1419

统计一个字符串中每个字符出现的次数

已知字符串为:"good good study,day day up" 思路: 1.创建一个map        key:出现的字符  value:出现的次数  2.获取字符串中的每一个字符  3.查...
  • wangqing84411433
  • wangqing84411433
  • 2016-12-20 22:53
  • 7402

java基础—统计一个字符串中各个字符出现的次数

统计一个字符串中各个字符出现的次数 import java.util.Iterator; import java.util.Set; import java.util.TreeMap; publi...
  • zl18603543572
  • zl18603543572
  • 2015-06-20 00:08
  • 9085

【数据结构】用Hash方法统计数字出现次数

题源:北航6系数据结构作业 【问题描述】 用HASH方法统计整数出现的次数 【输入形式】 以逗号分隔,#结尾的整数 【输出形式】 等式。左侧为排序好的整数,右侧为其出现的次...
  • tao20dage
  • tao20dage
  • 2015-12-28 10:02
  • 585

腾讯面试题(统计数字出现的次数问题)

腾讯面试题(统计数字出现的次数问题)
  • u012333003
  • u012333003
  • 2014-04-28 12:02
  • 931

统计数字在排序数组中出现的次数

题目:统计一个数字在排序数组中出现的次数。 分析:利用二分查找分别找到第一次出现该数的位置和最后一次出现该数的位置。 #include int get_first(int a[], int l...
  • xc889078
  • xc889078
  • 2013-06-19 16:24
  • 455

统计数字在排序数组中出现的次数

问题描述:统计一个数字在排序数组中出现的次数。例如排序数组{1,3,4,4,4,4,4,6,7,9},要查找数字4出现的次数,由于4在这个数组中出现了5次,所以输出5。 分析:看到是排序的数组,理所...
  • libing06081227
  • libing06081227
  • 2013-05-06 17:26
  • 696

(Realx 数论1.28)POJ 2282 The Counting Problem(区间统计数字:统计a、b之间各个数字(0~9)出现的次数)

题意:   统计两个整数a,b之间各个数字(0~9)出现的次数,如1024和1032,他们之间的数字有1024 1025 1026 1027 1028 1029 1030 1031 1032 总共有...
  • caihongshijie6
  • caihongshijie6
  • 2013-12-05 23:45
  • 1102

算法设计与分析 1-1 统计数字问题(C语言版)

问题描述: 一本书的页码从自然数1开始顺序编码直到自然数n。书的页码 按照通常的习惯编排,一个页码内都不包含多余的前导数字0.例如,第6页用数字6表示,而不是06或006等;数字计数问题要求给定...
  • u011641865
  • u011641865
  • 2014-03-08 01:42
  • 1663

Lintcode 3统计数字

计算数字k在0到n中的出现的次数,k可能是0~9的一个值 例如n=12,k=1,在 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],我们发现1出现了...
  • Charles_ke
  • Charles_ke
  • 2017-11-30 21:44
  • 43
    个人资料
    • 访问:2703次
    • 积分:156
    • 等级:
    • 排名:千里之外
    • 原创:11篇
    • 转载:3篇
    • 译文:0篇
    • 评论:31条
    文章分类