代码改变世界

2.5亿个整数中找出不重复的整数

2014-01-03 11:20  江湖么名  阅读(1104)  评论(0编辑  收藏  举报

问题描述:在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的整数输出即可。