亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

百度面試題,如何快速找出文件(大文件無法一次性讀取)中的重復項?

百度面試題,如何快速找出文件(大文件無法一次性讀取)中的重復項?

有只小跳蛙 2018-07-10 16:21:29
百度面試題,大致意思是說,有個文件,文件很大不能一次性讀取(可能是不能一次性加載到內存中),文件中存放的是IP地址,如何快速找出重復的IP地址?求指點思路。文件很大,可以逐行讀取,append到list中,取set,再取差集,不知是否可行?
查看完整描述

1 回答

?
飲歌長嘯

TA貢獻1951條經驗 獲得超3個贊

不可行。

  1. append 到 list中,,跟直接一次性讀取沒差,都是要占用所有數據的內存;

  2. 取差集只能set - list,不能 list - set


查看完整回答
反對 回復 2018-07-10
?
白豬掌柜的

TA貢獻1893條經驗 獲得超10個贊

IPv4么…… 一共才 4Gi 個地址,到內存里挖好坑,等著IP來跳。浪費點,用int8來存也就是4GB內存,節省點,用bit存的話只要500MB。思路可以活點,其實我覺得給出IP地址這個限制條件就是在降低難度。

IPv6的話,可能就得分治?;舅悸肪褪窍劝磧却婺艹惺艿拈L度去檢查地址的前幾位,碰撞了的丟同一個bucket里,然后再一個一個bucket地去看里面有沒有重的,往下也可以再分。其實DBMS整天干這事……


查看完整回答
反對 回復 2018-07-10
  • 1 回答
  • 0 關注
  • 1046 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號