只用2GB的内存找出20亿个整数中找到出现次数最多的数
要求有一个包含20亿个32位整数的文件,从中找到出现次数最多的数。
首先先分析一下,32位int类型的数占4B,20亿个4B 约为 8GB,只用2GB肯定不够。所以我们肯定需要将这20亿个数哈希到不同的文件中,由于哈希函数的特性,对于相同的输入值,返回值也相同,所以不可能出现同一个值的数出现在不同的文件里,之后我们只需要在单个文件中,找到该文件中出现最多的数。将所有文件中出现次数最多的数都比较找到出现次数最多的。
事实最极端的可能出现某一个数出现了20亿次。int类型的数32位能够表达的最多的值2^32 -1 约为40亿多。 所以我们用哈希表做词频统计。哈希表的key是某个整数,value是出现的次数。哈希表的一条记录就占8B
当记录为2亿时,就需要1.6GB的内存。那么我们就可以将这个文件哈希成16个小文件。
只用2GB的内存找出20亿个整数中找到出现次数最多的数相关推荐
- 只有2GB内存在20亿个整数中找到出现次数最多的数
题目:有一个包含20亿个全是32位整数的大文件,在其中找到出现次数最多的数 要求:内存限制2GB 解决办法:把包含20亿个数的大文件用哈希函数分成16个小文件,根据哈希函数的性质,同一种数不可能被散列 ...
- 【面试被虐】如何只用2GB内存从20亿,40亿,80亿个整数中找到出现次数最多的数?...
这几天小秋去面试了,不过最近小秋学习了不少和位算法相关文章,例如 [面试现场]如何判断一个数是否在40亿个整数中? [算法技巧]位运算装逼指南 对于算法题还是有点信心的,,,,于是,发现了如下对话. ...
- 如何只用2GB内存从20/40/80亿个整数中找到出现次数最多的数
来源:公众号[苦逼的码农] 这几天小秋去面试了,不过最近小秋学习了不少和位算法相关文章,例如: [算法技巧]位运算装逼指南 对于算法题还是有点信心的,,,,于是,发现了如下对话. 20亿级别 面试官: ...
- 【面试被虐】如何只用2GB内存从20亿,40亿,80亿个整数中找到出现次数最多的数?
这几天小秋去面试了,不过最近小秋学习了不少和位算法相关文章,例如 [面试现场]如何判断一个数是否在40亿个整数中? [算法技巧]位运算装逼指南 对于算法题还是有点信心的,,,,于是,发现了如下对话. ...
- 挑战程序员同学,如何只用2GB内存从20/40/80亿个整数中找到出现次数最多的数?
按位比较,比如先遍历一遍数字,判断第一位是0还是1多,然后便利多的那一位的数字,判断第二位是0还是1多,依次判断到第32位,就是出现次数最多的数字了 好吧,这个算法不对 我感觉这个题目是不是考的排序算 ...
- Spark的实战题目——寻找5亿次访问中,访问次数最多的人
场景描述:这是一个Spark的实战题目,也是在面试中经常出现的一类题目. 问题描述 对于一个大型网站,用户访问量尝尝高达数十亿.对于数十亿是一个什么样的概念,我们这里可以简单的计算一下.对于一个用户, ...
- 漫画:如何判断一个数是否在40亿个整数中?
文章来源于:https://wwww.iamshuaidi.com,一个专注于校招,面试,面经的编程网站 题目:我有40亿个整数,再给一个新的整数,我需要判断新的整数是否在40亿个整数中,你会怎么做? ...
- 在2.5亿个整数中找出不重复的整数,注,内存不足以容纳这2.5亿个整数
方案1:采用2-Bitmap(每个数分配2bit,00表示不存在,01表示出现一次,10表示多次,11无意义)进行,共需内存2^32 * 2 bit=1 GB内存,还可以接受.然后扫描这2.5亿个整数 ...
- 一道笔试题:从1亿个整数中找出最大的一万个
今天看到一篇赖永浩大牛的博客,由一道笔试题目谈算法优化.http://blog.csdn.net/lanphaday/archive/2008/12/19/3547776.aspx. 题目原题是从10 ...
最新文章
- sentinel限流_微服务架构进阶:Sentinel实现服务限流、熔断与降级
- Typescript 基本类型
- Centreon不出图
- 数据库复习之规范化理论
- 用于大型事件处理的Akka Java
- 周记随笔-php5.6与apache2.4的windows32安装
- react 交互_如何在React中建立动画微交互
- 3d打印机 开源资料_3D打印的人类双手,开源课程资料以及更多新闻
- 在图片中添加自己的文本信息(PNG及JPEG格式)
- Redis数据安全与性能保障——redis读书笔记4
- Win10精确式触摸板安装
- css3 箭头动态效果,CSS3制作上下跳动动画箭头效果
- MMA7455L笔记
- 知物由学 | Android 模拟点击研究,如何突围“黑灰产”的自动化作弊?
- [图像处理] Matlab 获取实时图像和导入视频图像
- AIME数学竞赛信息大全
- 关联分析:Apriori算法
- 教育学大佬是怎么找外文参考文献的?
- 利用jsp内置对象实现的简易聊天室
- 小米miui查看连接过已保存的密码方法
热门文章
- 酒店小程序功能如何开发?
- 从干净SSD安装ubuntu20.04.3 LTS 单系统
- 【新书推荐】【2019.06】我们为什么会说脏话?(了解爆粗口的神奇趣味科学,看说脏话如何在情感和身体上影响我们。)...
- raid5通常需要几块盘_Raid什么意思 Raid5需要几块硬盘?
- 面试经之给刚毕业的大学生和刚入门的程序员的忠告及图书推荐
- 电子计算机与多媒体导学案,河北石家庄市高中生物2.3伴性遗传第2课时导学案无答案必修22017080715...
- Power Point 2003 的问题:有时打不开以前版本的PPT文件(转)
- 2022DASCTF Apr X FATE 防疫挑战赛
- Nodejs实战之二(使用 superagent 与 cheerio 完成简单爬虫)
- autojs悬浮窗权限申请和判断