算法基础22-《进阶》如何解决资源限制类题目

本文探讨如何在资源有限的情况下解决数据处理问题。通过位图技术节省空间,解决寻找未出现过的数的挑战。在内存限制为1GB时,使用位图能高效记录数字出现情况。而在内存限制更小如10MB或3K时,采用分段统计思想,将大范围数据均分并统计,最终找到未出现的数。此外,对于找到一个未出现的数,甚至只使用几个变量的情况,可以运用二分查找策略。
摘要由CSDN通过智能技术生成

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内存才能存下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值