【CSP201312-1 】出现次数最多的数,排序后扫描并记录
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 】出现次数最多的数,排序后扫描并记录相关推荐
- 挑战程序员同学,如何只用2GB内存从20/40/80亿个整数中找到出现次数最多的数?
按位比较,比如先遍历一遍数字,判断第一位是0还是1多,然后便利多的那一位的数字,判断第二位是0还是1多,依次判断到第32位,就是出现次数最多的数字了 好吧,这个算法不对 我感觉这个题目是不是考的排序算 ...
- java数组出现次数最多的数_找出数组中出现次数最多的那个数——主元素问题...
方法一:以空间换时间,可以定义一个计数数组int count[101],用来对数组中数字出现的次数进行计数(只能针对数组中数字的范围1~100),count数组中最大的元素对应的下标,即为出现次数最多 ...
- 【面试被虐】如何只用2GB内存从20亿,40亿,80亿个整数中找到出现次数最多的数?...
这几天小秋去面试了,不过最近小秋学习了不少和位算法相关文章,例如 [面试现场]如何判断一个数是否在40亿个整数中? [算法技巧]位运算装逼指南 对于算法题还是有点信心的,,,,于是,发现了如下对话. ...
- 出现次数最多的数-CCF模拟
问题描述 给定n个正整数,找出它们中出现次数最多的数.如果这样的数有多个,请输出其中最小的一个. 输入格式 输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数. 输入的第二行有n ...
- 只有2GB内存在20亿个整数中找到出现次数最多的数
题目:有一个包含20亿个全是32位整数的大文件,在其中找到出现次数最多的数 要求:内存限制2GB 解决办法:把包含20亿个数的大文件用哈希函数分成16个小文件,根据哈希函数的性质,同一种数不可能被散列 ...
- 如何只用2GB内存从20/40/80亿个整数中找到出现次数最多的数
来源:公众号[苦逼的码农] 这几天小秋去面试了,不过最近小秋学习了不少和位算法相关文章,例如: [算法技巧]位运算装逼指南 对于算法题还是有点信心的,,,,于是,发现了如下对话. 20亿级别 面试官: ...
- 201312-1- 出现次数最多的数
题目: 问题描述 给定n个正整数,找出它们中出现次数最多的数.如果这样的数有多个,请输出其中最小的一个. 输入格式 输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数. 输入的第 ...
- CCF真题 201312-1 出现次数最多的数
目录 1 题目 1.1 问题描述 1.2 输入格式 1.3 输出格式 1.4 样例输入 1.5 样例输出 2 代码 1 题目 1.1 问题描述 给定n个正整数,找出它们中出现次数最多的数.如果这样的数 ...
- C语言简单题-求整数序列中出现次数最多的数
7-2 求整数序列中出现次数最多的数 (15分) 本题要求统计一个整型序列中出现次数最多的整数及其出现次数. 输入格式: 输入在一行中给出序列中整数个数N(0<N≤1000),以及N个整数.数字 ...
最新文章
- Windows Azure-2.5天免费深度技术训练营——面向软件工程师和架构师
- 沐创密码芯片获奖!中国电子学会年度技术发明一等奖,颁给国产集成电路公司...
- python 字符串补齐
- Apache的make编译错误
- 我在51CTO的第一篇博文!
- .NET Core中使用Dapper操作Oracle存储过程最佳实践
- python笔记(五) - 获取对象的引用
- 接口_简单get接口_第一个接口
- python帮助文档在哪_python文档之查看帮助文档方法
- 再品Resnet残差网络
- 改良程序需要的11个技巧
- 数据挖掘——时间序列算法之组合模型
- ubuntu安装nvidia显卡驱动注意事项以及关闭ubuntu内核自动更新
- 【NTL密码算法开源库-概述】
- c语言减肥系统软件,给win7系统减减肥
- Python基础项目:学生信息管理系统
- 21年1.9c#halcon机器视觉软件系统框架源码visi onpro
- 让子盒子在父盒子中垂直居中的七个方法
- 软件分享 gif转视频
- 如何用老毛桃PE启动盘进入PE系统给硬盘分区
热门文章
- SecondaryNameNode 的作用
- 形式的化简与和式的展开
- Python 获取对象信息 —— dype 与 dir
- matplotlib 可视化细节,丰富的可选参数
- 程序结构程序设计(三) ——递归及递归举例
- 数论基本定理及应用(二)
- access窗体独立运行_由浅入深学习网络设备模拟器HCL 第一篇 安装与运行
- 原版98启动盘镜像.img_不会重装系统?教你使用U盘重装win10原版系统,零基础也能学会!...
- Android build.gradle文件详解(转述自《Android第一行代码》第二版)
- python能做什么工作-Python学完工作不好找?看看数据分析可视化都可以做什么