百度面試題,大致意思是說,有個文件,文件很大不能一次性讀取(可能是不能一次性加載到內存中),文件中存放的是IP地址,如何快速找出重復的IP地址?求指點思路。文件很大,可以逐行讀取,append到list中,取set,再取差集,不知是否可行?
2 回答

鳳凰求蠱
TA貢獻1825條經驗 獲得超4個贊
IPv4么…… 一共才 4Gi 個地址,到內存里挖好坑,等著IP來跳。浪費點,用int8來存也就是4GB內存,節省點,用bit存的話只要500MB。思路可以活點,其實我覺得給出IP地址這個限制條件就是在降低難度。
IPv6的話,可能就得分治?;舅悸肪褪窍劝磧却婺艹惺艿拈L度去檢查地址的前幾位,碰撞了的丟同一個bucket里,然后再一個一個bucket地去看里面有沒有重的,往下也可以再分。其實DBMS整天干這事……
添加回答
舉報
0/150
提交
取消