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

Posted dituicyqz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了挑战程序员同学,如何只用2GB内存从20/40/80亿个整数中找到出现次数最多的数?相关的知识,希望对你有一定的参考价值。

按位比较,比如先遍历一遍数字,判断第一位是0还是1多,然后便利多的那一位的数字,判断第二位是0还是1多,依次判断到第32位,就是出现次数最多的数字了

好吧,这个算法不对

我感觉这个题目是不是考的排序算法啊,这80亿个数字如果是有序的,则根本不需要2G内存

如果是无序的,则2G内存不够用,那么肯定要引入额外硬盘空间,既然都引入额外硬盘空间了,那也不用这么多内存了。

所以我估计题目应该是这样:

硬盘空间固定,存储了80亿个随机数字,硬盘可写,只有2G内存,找到其中出现次数最多的数。

解决方案就是排序,但是改写硬盘数据的时候必须成对的改写

chainofhonor

4粉丝 · 33赞

搜索

十大最耐用的硬盘

排列三神奇算法

自学编程

程序员级别

出号算法

从零开始自学编程

以上是关于挑战程序员同学,如何只用2GB内存从20/40/80亿个整数中找到出现次数最多的数?的主要内容,如果未能解决你的问题,请参考以下文章

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

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

如何为 Windows 中的进程分配超过 2GB 的内存?

docker安装与配置

如何解决内存泄漏问题?

Apache Spark 如何处理不适合内存的数据?