![](https://i-blog.csdnimg.cn/blog_migrate/00dce014b954f9d01098517fb9155c00.png)
今天,我们来聊一道常见的考题,也出现在腾讯面试的三面环节,非常有意思。具体的题目如下:
文件中有40亿个QQ号码,请设计算法对QQ号码去重,相同的QQ号码仅保留一个,内存限制1G.
这个题目的意思应该很清楚了,比较直白。
能否做对这道题目,很大程度上就决定了能否拿下腾讯的offer,有一定的技巧性,一起来看下吧。
在原题中,实际有40亿个QQ号码,为了方便起见,在图解和叙述时,仅以4个QQ为例来说明。
方法一:排序
很自然地,最简单的方式是对所有的QQ号码进行排序,重复的QQ号码必然相邻,保留第一个,去掉后面重复的就行。
原始的QQ号为:
![](https://i-blog.csdnimg.cn/blog_migrate/3ae4c2cf16f8f5e55fc172470772e6af.png)
排序后的QQ号为:
![](https://i-blog.csdnimg.cn/blog_migrate/7347abf8021ccda4dc5561c80c09170d.png)
去重就简单了: