page contents

腾讯笔试题:判断数字是否出现在40亿个数中?

轩辕小不懂 发布于 2021-06-07 16:56
阅读 680
收藏 0
分类:面试与就业

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

最佳答案 2021-06-07 16:57

970
Pack
Pack

unsigned int 的取值范围是0到2^32-1。我们可以申请连续的2^32/8=512M的内存,用每一个bit对应一个unsigned int数字。首先将512M内存都初始化为0,然后每处理一个数字就将其对应的bit设置为1。当需要查询时,直接找到对应bit,看其值是0还是1即可。

请先 登录 后评论