为了账号安全,请及时绑定邮箱和手机立即绑定

如何快速找出文件(大文件无法一次性读取)中的重复项?

如何快速找出文件(大文件无法一次性读取)中的重复项?

温温酱 2018-07-10 14:14:35
百度面试题,大致意思是说,有个文件,文件很大不能一次性读取(可能是不能一次性加载到内存中),文件中存放的是IP地址,如何快速找出重复的IP地址?求指点思路。文件很大,可以逐行读取,append到list中,取set,再取差集,不知是否可行?
查看完整描述

2 回答

?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

IPv4么…… 一共才 4Gi 个地址,到内存里挖好坑,等着IP来跳。浪费点,用int8来存也就是4GB内存,节省点,用bit存的话只要500MB。思路可以活点,其实我觉得给出IP地址这个限制条件就是在降低难度

IPv6的话,可能就得分治。基本思路就是先按内存能承受的长度去检查地址的前几位,碰撞了的丢同一个bucket里,然后再一个一个bucket地去看里面有没有重的,往下也可以再分。其实DBMS整天干这事……


查看完整回答
反对 回复 2018-07-21
  • 2 回答
  • 0 关注
  • 2135 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信