40亿个QQ号,限制1G内存,如何去重?

2 min read

将40亿个QQ号分成若干个小块(比如100万个一块),对每一块进行去重。

对于每一块,可以使用哈希表或布隆过滤器进行去重,具体步骤如下:

  1. 对每个QQ号进行哈希处理,得到一个哈希值;

  2. 将哈希值与已有的哈希表或布隆过滤器进行比对;

  3. 如果哈希表或布隆过滤器中已经存在该哈希值,说明该QQ号已经出现过,就可以将其删除;

  4. 如果哈希表或布隆过滤器中不存在该哈希值,说明该QQ号是新的,就将其加入哈希表或布隆过滤器。

最后,将所有小块去重后的QQ号合并起来即可得到40亿个QQ号的去重结果。由于每个小块的数据量比较小,哈希表或布隆过滤器也只需要占用少量内存,所以可以保证在1G内存的限制下完成去重。