要求有一个包含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亿个整数中找到出现次数最多的数相关推荐

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

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

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

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

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

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

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

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

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

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

  6. Spark的实战题目——寻找5亿次访问中,访问次数最多的人

    场景描述:这是一个Spark的实战题目,也是在面试中经常出现的一类题目. 问题描述 对于一个大型网站,用户访问量尝尝高达数十亿.对于数十亿是一个什么样的概念,我们这里可以简单的计算一下.对于一个用户, ...

  7. 漫画:如何判断一个数是否在40亿个整数中?

    文章来源于:https://wwww.iamshuaidi.com,一个专注于校招,面试,面经的编程网站 题目:我有40亿个整数,再给一个新的整数,我需要判断新的整数是否在40亿个整数中,你会怎么做? ...

  8. 在2.5亿个整数中找出不重复的整数,注,内存不足以容纳这2.5亿个整数

    方案1:采用2-Bitmap(每个数分配2bit,00表示不存在,01表示出现一次,10表示多次,11无意义)进行,共需内存2^32 * 2 bit=1 GB内存,还可以接受.然后扫描这2.5亿个整数 ...

  9. 一道笔试题:从1亿个整数中找出最大的一万个

    今天看到一篇赖永浩大牛的博客,由一道笔试题目谈算法优化.http://blog.csdn.net/lanphaday/archive/2008/12/19/3547776.aspx. 题目原题是从10 ...

最新文章

  1. sentinel限流_微服务架构进阶:Sentinel实现服务限流、熔断与降级
  2. Typescript 基本类型
  3. Centreon不出图
  4. 数据库复习之规范化理论
  5. 用于大型事件处理的Akka Java
  6. 周记随笔-php5.6与apache2.4的windows32安装
  7. react 交互_如何在React中建立动画微交互
  8. 3d打印机 开源资料_3D打印的人类双手,开源课程资料以及更多新闻
  9. 在图片中添加自己的文本信息(PNG及JPEG格式)
  10. Redis数据安全与性能保障——redis读书笔记4
  11. Win10精确式触摸板安装
  12. css3 箭头动态效果,CSS3制作上下跳动动画箭头效果
  13. MMA7455L笔记
  14. 知物由学 | Android 模拟点击研究,如何突围“黑灰产”的自动化作弊?
  15. [图像处理] Matlab 获取实时图像和导入视频图像
  16. AIME数学竞赛信息大全
  17. 关联分析:Apriori算法
  18. 教育学大佬是怎么找外文参考文献的?
  19. 利用jsp内置对象实现的简易聊天室
  20. 小米miui查看连接过已保存的密码方法

热门文章

  1. 酒店小程序功能如何开发?
  2. 从干净SSD安装ubuntu20.04.3 LTS 单系统
  3. 【新书推荐】【2019.06】我们为什么会说脏话?(了解爆粗口的神奇趣味科学,看说脏话如何在情感和身体上影响我们。)...
  4. raid5通常需要几块盘_Raid什么意思 Raid5需要几块硬盘?
  5. 面试经之给刚毕业的大学生和刚入门的程序员的忠告及图书推荐
  6. 电子计算机与多媒体导学案,河北石家庄市高中生物2.3伴性遗传第2课时导学案无答案必修22017080715...
  7. Power Point 2003 的问题:有时打不开以前版本的PPT文件(转)
  8. 2022DASCTF Apr X FATE 防疫挑战赛
  9. Nodejs实战之二(使用 superagent 与 cheerio 完成简单爬虫)
  10. autojs悬浮窗权限申请和判断