问题:
在2.5亿个整数中找出不重复的整数,注,内存不足以容纳这2.5亿个整数。
解答:
整数4字节,每个字节是8位,所以共有2^32个整数,为每个整数设置一个2bit的标志位,00表示没出现过,01表示出现一次,10表示出现多次,即申请2bit类型的数组bitArr[2^32],占用内存2^32*2bit=1GB,可以接受。
遍历2.5亿个整数,设置数组bitArr[],若是00则变为01,若是01则变为10,若是10则不变,最后输出10对应的下标,即为出现一次的数。
问题:
在2.5亿个整数中找出不重复的整数,注,内存不足以容纳这2.5亿个整数。
解答:
整数4字节,每个字节是8位,所以共有2^32个整数,为每个整数设置一个2bit的标志位,00表示没出现过,01表示出现一次,10表示出现多次,即申请2bit类型的数组bitArr[2^32],占用内存2^32*2bit=1GB,可以接受。
遍历2.5亿个整数,设置数组bitArr[],若是00则变为01,若是01则变为10,若是10则不变,最后输出10对应的下标,即为出现一次的数。