腾讯面试题

给40亿个不重复的unsigned int的整数,没排过序的,然后再给几个数,如何快速判断这几个数是否在那40亿个数当中?

答案: 使用位图, 使用位图标识40亿个不重复的数,大概需要不到512M的内存.  因为512M内存共有4.2949673 × 109bit位,能表示全部unsigned int范围的整数. 先把这40亿个数加载到内存里,对应数的bit位置1, 然后查询对应的bit位是否为1就可以知道了

你可能感兴趣的:(面试,腾讯)