problem

问题描述
  给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。
输入格式
  输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数。
  输入的第二行有n个整数s1, s2, …, sn (1 ≤ si ≤ 10000, 1 ≤ i ≤ n)。相邻的数用空格分隔。
输出格式
  输出这n个次数中出现次数最多的数。如果这样的数有多个,输出其中最小的一个。
样例输入
6
10 1 10 20 30 20
样例输出
10

solution

真的经典题了,做法有好多的样子qaq
我最早是在啊哈算法的后传里看到的,msra的面试题。

做法1
直接桶排统计,然后扫一遍统计出现次数最多的,复杂度是O(X),X为最大数。

#include<iostream>
using namespace std;
int a[10010];
int main(){int n;  cin>>n;for(int i = 1; i <= n; i++){int x;  cin>>x;  a[x]++;}int ans = 0, max = 0;for(int i = 1; i <= 10010; i++){if(a[i]>max){ans = i; max = a[i];}}cout<<ans<<'\n';return 0;
}

做法2
可以排序,排完后相同元素都会聚在一起,然后扫一遍用个变量记录出现次数最多的即可,快排复杂度O(nlogn)

#include<iostream>
#include<algorithm>
using namespace std;
int a[1010];
int main(){int n;  cin>>n;for(int i = 1; i <= n; i++)cin>>a[i];sort(a+1,a+n+1);int ans = 0, max = 0, count=1;for(int i = 2; i <= n; i++){if(a[i]==a[i-1])count++;else{if(count>max){max = count;ans = a[i-1];}count = 1;}}if(count>max){max = count;ans = a[n];}cout<<ans<<endl;return 0;
}

【CSP201312-1 】出现次数最多的数,排序后扫描并记录相关推荐

  1. 挑战程序员同学,如何只用2GB内存从20/40/80亿个整数中找到出现次数最多的数?

    按位比较,比如先遍历一遍数字,判断第一位是0还是1多,然后便利多的那一位的数字,判断第二位是0还是1多,依次判断到第32位,就是出现次数最多的数字了 好吧,这个算法不对 我感觉这个题目是不是考的排序算 ...

  2. java数组出现次数最多的数_找出数组中出现次数最多的那个数——主元素问题...

    方法一:以空间换时间,可以定义一个计数数组int count[101],用来对数组中数字出现的次数进行计数(只能针对数组中数字的范围1~100),count数组中最大的元素对应的下标,即为出现次数最多 ...

  3. 【面试被虐】如何只用2GB内存从20亿,40亿,80亿个整数中找到出现次数最多的数?...

    这几天小秋去面试了,不过最近小秋学习了不少和位算法相关文章,例如 [面试现场]如何判断一个数是否在40亿个整数中? [算法技巧]位运算装逼指南 对于算法题还是有点信心的,,,,于是,发现了如下对话. ...

  4. 出现次数最多的数-CCF模拟

    问题描述 给定n个正整数,找出它们中出现次数最多的数.如果这样的数有多个,请输出其中最小的一个. 输入格式 输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数. 输入的第二行有n ...

  5. 只有2GB内存在20亿个整数中找到出现次数最多的数

    题目:有一个包含20亿个全是32位整数的大文件,在其中找到出现次数最多的数 要求:内存限制2GB 解决办法:把包含20亿个数的大文件用哈希函数分成16个小文件,根据哈希函数的性质,同一种数不可能被散列 ...

  6. 如何只用2GB内存从20/40/80亿个整数中找到出现次数最多的数

    来源:公众号[苦逼的码农] 这几天小秋去面试了,不过最近小秋学习了不少和位算法相关文章,例如: [算法技巧]位运算装逼指南 对于算法题还是有点信心的,,,,于是,发现了如下对话. 20亿级别 面试官: ...

  7. 201312-1- 出现次数最多的数

    题目: 问题描述 给定n个正整数,找出它们中出现次数最多的数.如果这样的数有多个,请输出其中最小的一个. 输入格式 输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数. 输入的第 ...

  8. CCF真题 201312-1 出现次数最多的数

    目录 1 题目 1.1 问题描述 1.2 输入格式 1.3 输出格式 1.4 样例输入 1.5 样例输出 2 代码 1 题目 1.1 问题描述 给定n个正整数,找出它们中出现次数最多的数.如果这样的数 ...

  9. C语言简单题-求整数序列中出现次数最多的数

    7-2 求整数序列中出现次数最多的数 (15分) 本题要求统计一个整型序列中出现次数最多的整数及其出现次数. 输入格式: 输入在一行中给出序列中整数个数N(0<N≤1000),以及N个整数.数字 ...

最新文章

  1. Windows Azure-2.5天免费深度技术训练营——面向软件工程师和架构师
  2. 沐创密码芯片获奖!中国电子学会年度技术发明一等奖,颁给国产集成电路公司...
  3. python 字符串补齐
  4. Apache的make编译错误
  5. 我在51CTO的第一篇博文!
  6. .NET Core中使用Dapper操作Oracle存储过程最佳实践
  7. python笔记(五) - 获取对象的引用
  8. 接口_简单get接口_第一个接口
  9. python帮助文档在哪_python文档之查看帮助文档方法
  10. 再品Resnet残差网络
  11. 改良程序需要的11个技巧
  12. 数据挖掘——时间序列算法之组合模型
  13. ubuntu安装nvidia显卡驱动注意事项以及关闭ubuntu内核自动更新
  14. 【NTL密码算法开源库-概述】
  15. c语言减肥系统软件,给win7系统减减肥
  16. Python基础项目:学生信息管理系统
  17. 21年1.9c#halcon机器视觉软件系统框架源码visi onpro
  18. 让子盒子在父盒子中垂直居中的七个方法
  19. 软件分享 gif转视频
  20. 如何用老毛桃PE启动盘进入PE系统给硬盘分区

热门文章

  1. SecondaryNameNode 的作用
  2. 形式的化简与和式的展开
  3. Python 获取对象信息 —— dype 与 dir
  4. matplotlib 可视化细节,丰富的可选参数
  5. 程序结构程序设计(三) ——递归及递归举例
  6. 数论基本定理及应用(二)
  7. access窗体独立运行_由浅入深学习网络设备模拟器HCL 第一篇 安装与运行
  8. 原版98启动盘镜像.img_不会重装系统?教你使用U盘重装win10原版系统,零基础也能学会!...
  9. Android build.gradle文件详解(转述自《Android第一行代码》第二版)
  10. python能做什么工作-Python学完工作不好找?看看数据分析可视化都可以做什么