如何統計不同電話號碼的個數?


題目描述

已知某個文件內包含一些電話號碼,每個號碼為 8 位數字,統計不同號碼的個數。

解答思路

這道題本質還是求解數據重復的問題,對於這類問題,一般首先考慮位圖法。

對於本題,8 位電話號碼可以表示的號碼個數為 108 個,即 1 億個。我們每個號碼用一個 bit 來表示,則總共需要 1 億個 bit,內存占用約 100M。

思路如下:

申請一個位圖數組,長度為 1 億,初始化為 0。然后遍歷所有電話號碼,把號碼對應的位圖中的位置置為 1。遍歷完成后,如果 bit 為 1,則表示這個電話號碼在文件中存在,否則不存在。bit 值為 1 的數量即為 不同電話號碼的個數。

方法總結

求解數據重復問題,記得考慮位圖法。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM