logo

腾讯面试题:给40亿个不重复的unsigned int整数(未排序),再给一个数,如何快速判断这个数是否在那40亿个数当中?

Tencent interview question: You are given 4 billion distinct unsigned int values (unsorted). Given another number, how do you quickly determine whether it exists in the set?

题目类型: 技术面试题

这是一道技术面试题,常见于澳洲IT公司面试中。

难度: hard

分类: 大数据处理, 位图, 集合成员判断

标签: Bitmap, Bitset, Membership Test, File Partition

参考答案摘要

核心答案 最经典做法是 位图/Bitset :用 1 bit 表示一个 unsigned int 是否出现。另一个思路是按二进制位逐步划分文件,类似二分查找。 方案1(位图法,最快) 申请约 512MB 内存,用 1 bit 对应一个 unsigned int 值。 读取40亿个数,将对应 bit 置为1。 读取要查询的数,检查对应 bit 是否为1:为1表示存在,为0表示不存在。 方案2(按最高...

本题提供 STAR 原则详细解答和技术解析,登录匠人学院学习中心即可查看完整答案。

← 返回面试题库

腾讯面试题:给40亿个不重复的unsigned int整数(未排序),再给一个数,如何快速判断这个数是否在那40亿个数当中?

Hardalgorithmsdata-structuressystem-design

想查看完整答案?

登录匠人学院学习中心,获取 STAR 格式回答和详细技术解析

前往学习中心查看答案