首页 > 今日新闻 > 今日新闻 > 40亿QQ号,不超过1G内存,如何去重?

40亿QQ号,不超过1G内存,如何去重?

发布时间:2025-06-12 19:18:51
分享一道网上很火的面试题:40亿QQ号,不超过1G的内存,如何去重?
开头直接上干货:40亿个QQ号塞进电脑,内存只给1G,这题听着就离谱!但真有人用个小技巧搞定了——位图,原理简单到像小学生画格子签到。
 
---
 
一、为啥常规方法行不通?
 
1. 日常去重咋做?
一般人会想到用`HashSet`,把QQ号往里一丢,重复的自动过滤。
2. 但内存炸了!
40亿个QQ号,每个占4字节,总内存需要约15GB;如果是8字节,直接飙到30GB。可题目只给1G内存,硬塞肯定崩。
---
二、神操作:用位图省空间
1. 位图是啥?
想象一张超大的签到表:
- 每个格子代表一个QQ号。
- 如果这个QQ号来过,就在格子里画个勾;没来就空着。
→ 关键点:一个格子只占1个bit,比存QQ号本身省了几十倍空间。
2. 40亿QQ号要多少内存?
签到表需要40亿个格子:
```
40亿 bit ÷ 8 = 5亿字节
476MB ÷ 1024 ≈ 0.46GB
```
不到0.5GB就能搞定! 完美满足1G限制。
3. 操作三步走:
- 第一步:准备一张40亿格子的签到表。
- 第二步:遍历所有QQ号,每看到一个号,就在对应格子画勾。
- 第三步:扫一遍签到表,把画了勾的格子对应的QQ号记下来——这些就是去重后的结果。
---
三、位图的优缺点
- 优点:
✅ 省内存:40亿数据只用半G,爽!
✅ 速度快:找号码、画勾都是秒完成。
✅ 操作简单:像查签到表一样直观。
- 缺点:
❌ 号码不能太分散:如果QQ号最大到1万亿,格子就得预留1万亿个,内存直接涨到125GB,血亏。
❌ 只能记“来过”:想统计某个号来了几次?做不到。

今日新闻更多>>

华为重返欧洲高端市场!Mate 80 Pro海外发布:系统不是鸿蒙 机构:2025年12月全球手机平均内存8.4GB创新高 酷比魔方在线询问,平板要不要合作适配魅族Flyme 消息称荣耀600系列工程机现身:采用6.57英寸直屏+骁龙8至尊版 卢伟冰已抵达巴塞罗那!小米大招来了:手机、汽车和AI都有惊喜 马斯克要把数据中心搬上太空!黄仁勋:没有空气流动得造巨大散热器 “小蓝灯”照耀回乡路,春运成智能驾驶最佳普及时机 | 电厂 刚刚,魅族正式回应:手机不会没,全力押宝AI,“煤油”评论区挥泪告别 美团推出“饭团漫社”,布局漫剧赛道 DPO「只看总分不看细节」?TI-DPO用Token重要性重塑大模型对齐 马斯克xAI雪崩!24小时两联创离职,一月内连失三位华人创始人 AI一秒写千言,硅谷为何砸500万年薪疯抢“笔杆子”? 马斯克xAI再失联合创始人,12人创始团队已有6人离场 马斯克最新内部讲话:先上月球放卫星,再去火星 长语音、对话、指令、音效全覆盖!模思智能推出MOSS-TTS Family 揭秘Seedance2.0背后AI关联公司 港股小米集团涨幅扩大至5% 星海图官宣完成10亿元B轮融资 AI红包大战激战正酣,未来到底在拼什么? AI一秒写千言,硅谷为何砸500万年薪疯抢“笔杆子”? Nothing Headphone (a)头戴式耳机被曝3月将上市,价格亲民 消息称内存芯片涨价致部分厂商暂停下代旗舰研发 苹果CEO库克:今年将展现前所未见的创新 英特尔代工iPhone芯片没戏了!行业人士揭开背后原因 小米Civi 6突然曝光:6.59英寸+中高端定位,上半年发布! 阶跃星辰发布开源基座 模型Step 3.5 Flash 顺丰“人格分裂”:一手砸钱扩版图,一手猛砍人力成本 SmarterMail修复CVSS 9.3分关键远程代码执行漏洞 “太空挖矿”过于科幻?中国动真格了 告别磁吸壳!三星Galaxy S26全系手机标配Qi2磁吸充电