- 0
- 0
- 约1.02千字
- 约 2页
- 2026-07-10 发布于北京
- 举报
在2.5亿个整数中找出不重复的整数
题目
学习时长:20分钟
题目难度:中等
知识点:位图法、分治法、大数据量处理
题目描述
在2.5亿个整数中找出不重复的整数。注意:内存不足以容纳这2.5亿个整数。
1.解答思路
方法一:分治法
与前面的题目方法类似,先将2.5亿个数划分到多个小文件,用HashSet/HashMap找出每个小文件中
不重复的整数,再合并每个子结果,即为最果。
方法二:位图法
位图,就是用一个或多个bit来标记某个元素对应的值,而键就是该元素。采用位作为单位来数
据,可以空间。
位图通过使用位数组来表示某些元素是否存在。它可以用于快速查找,判重,排序等。不是很清楚?我
先举个小例子。
假设我们要对中的5个元素(6,4,2,1,5)进行排序,可以采用位图法。0~7范围总共有8个
数,只需要8bit,即1个字节。首先将每个位都置0:
然后遍历5个元素,首先遇到6,那么将下标为6的位的0置为1;接着遇到4,把下标为4的位的0
置为1:
依次遍历,结束后,位数组是这样的:
每个为1的位,它
原创力文档

文档评论(0)