腾讯笔试题——数组位操作

来源:互联网 发布:知乎app怎么保存图片 编辑:程序博客网 时间:2024/06/03 21:18
问题:一个文件中有40亿个整数,每个整数为四个字节,内存为1GB,写出一个算法:求出这个文件里的整数里不包含的一个整数。

思路:
        申请一个大数组,数组中的每一位表示一个int型数字。由于每个整数为四个字节,总共只有2^32约等于4G种可能,故需要512MB个bit,所以数组的大小为512MB,并初始化为0。
        首先遍历40亿个整数,并将对应的bit置为1。对于重复的数字只统计一次,可以使用或操作来实现。
        然后遍历一下数组的各个bit,是0就将对应的数字打印出来或保存起来。

代码:
       未完待续!
0 0