看啥推荐读物
专栏名称: 算法爱好者
算法是程序员的内功!伯乐在线旗下账号「算法爱好者」专注分享算法相关文章、工具资源和算法题,帮程序员修炼内功。
今天看啥  ›  专栏  ›  算法爱好者

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

算法爱好者  · 公众号  · 算法  · 2019-06-14 11:35
(给算法爱好者加星标,修炼编程内功)作者:苦逼的码农20亿级别面试官:如果我给你 2GB 的内存,并且给你 20 亿个 int 型整数,让你来找出次数出现最多的数,你会怎么做?小秋:(嗯?怎么感觉和之前的那道判断一个数是否出现在这 40 亿个整数中有点一样?可是,如果还是采用 bitmap 算法的话,好像无法统计一个数出现的次数,只能判断一个数是否存在),我可以采用哈希表来统计,把这个数作为 key,把这个数出现的次数作为 value,之后我再遍历哈希表哪个数出现最多的次数最多就可以了。面试官:你可以算下你这个方法需要花费多少内存吗?小秋:key 和 value 都是 int 型整数,一个 int 型占用 4B 的内存,所以哈希表的一条记录需要占用 8B,最坏的情况下,这 20 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照