2.5亿个整数中找出不重复的整数
2014-01-03 11:20
211 查看
问题描述:在2.5亿个整数中找出不重复的整数,注,内存不足以容纳这2.5亿个整数。
思路:采用2-Bitmap(每个数分配2bit,00表示不存在,01表示出现一次,10表示多次,11无意义)进行,共需内存
2^32 * 2 bit=1 GB内存,还可以接受。然后扫描这2.5亿个整数,查看Bitmap中相对应位,如果是00变01,01变10,10保持
不变。扫描后,查看bitmap,把对应位是01的整数输出即可。
思路:采用2-Bitmap(每个数分配2bit,00表示不存在,01表示出现一次,10表示多次,11无意义)进行,共需内存
2^32 * 2 bit=1 GB内存,还可以接受。然后扫描这2.5亿个整数,查看Bitmap中相对应位,如果是00变01,01变10,10保持
不变。扫描后,查看bitmap,把对应位是01的整数输出即可。
相关文章推荐
- 运用bitmap解决一道海量数据处理面试题:在2.5亿个整数中找出不重复的整数,注,内存不足以容纳这2.5亿个整数。
- 运用bitmap解决一道海量数据处理面试题:在2.5亿个整数中找出不重复的整数,注,内存不足以容纳这2.5亿个整数。
- 在2.5亿个整数中找出不重复的整数
- 2.5亿个整数中找出不重复的数代码实现
- 2.5亿个整数中找出不重复的整数 bitmap
- 问题描述如下: 有2.5亿个整数(这2.5亿个整数存储在一个数组里面,至于数组是放在外存还是内存,没有进一步具体说明); 要求找出这2.5亿个数字里面,不重复的数字的个数; 另外,可用的内存限定为600M; 要求算法尽量高效,最优;
- 在2.5亿个整数中找出不重复的整数的C++实现源代码
- 取值为[1,n-1] 含n 个元素的整数数组至少存在一个重复数,O(n) 时间内找出其中任意一个重复数
- 面试题:n个整数的序列,其中一个整数重复次数超过一半,在O(n)时间内找出该整数
- 一个含n个元素的整数数组至少存在一个重复数, 请编程实现,在O(n)时间内找出其中任意一个重复数。
- 如何找出6个小于33大于0的整数,加起来正好是150,可以重复,比如[25,25,25,25,25,25],但是不需要考虑顺序
- 算法-在1001个整数中找出一个重复出现的数字
- 取值为[1,n-1]含n个元素的整数数组至少存在一个重复数,找出一个重复元素
- 100亿个32位整数中放到一个文件中,找出任一个重复出现的数
- 海量数据一,从2.5亿个正整数中找到不重复的整数
- 1-100的连续整数,乱序,重复一个数,丢失一个数,原地找出这两个数
- 面试题精选(79):取值为【1,n-1】含n个元素的整数数组至少存在一个重复数,O(n)时间内找出其中任意一个重复数
- 从2.5亿个数字里面找出不重复的数字的个数
- 取值为[1,n-1]含n个元素的整数数组,至少存在一个重复数,即可能存在多个重复数,O(n)时间内找出其中任意一个重复数,不使用额外存储空间。
- 一个存在重复数字的正整数数列,每个数都不超过32,找出其中所有重复的数字