文章目录
1 如何解决资源限制类题目
1.1布隆过滤器用于集合的建立与查询,并可以节省大量空间(已讲)
1.2 一致性哈希解决数据服务器的负载管理问题(已讲)
1.3 利用并查集结构做岛问题的并行计算(已讲)
1.4 哈希函数可以把数据按照种类均匀分流
1.5 位图解决某一范围上数字的出现情况,并可以节省大量空间
1.6 利用分段统计思想、并进一步节省大量空间
1.7 利用堆、外排序来做多个处理单元的结果合并
题目1(位图和分段统计):
32位无符号整数的范围是0~4,294,967,295,
现在有一个正好包含40亿个无符号整数的文件,
所以在整个范围中必然存在没出现过的数。
1、可以使用最多1GB的内存,怎么找到所有未出现过的数?
【进阶】
2、内存限制为 10MB,但是只用找到一个没出现过的数即可
3、内存限制为 3K,但是只用找到一个没出现过的数即可
4、内存限制为几个变量,但是只用找到一个没出现过的数即可
如果用HashMap来存所有的key,每个无符号整数是4个字节,40亿个数,大约160亿字节,10亿字节大约1G, 大约需要16个G内存才能存下