1. 程式人生 > >判斷數字是否出現在40億個數中?

判斷數字是否出現在40億個數中?

給40億個不重複的unsigned int的整數,沒排過序的,然後再給幾個數,如何快速判斷這幾個數是否在那40億個數當中?

思路:

unsigned int 的取值範圍是0到2^32-1。我們可以申請連續的2^32/8=512M的記憶體,用每一個bit對應一個unsigned int數字。首先將512M記憶體都初始化為0,然後每處理一個數字就將其對應的bit設定為1。當需要查詢時,直接找到對應bit,看其值是0還是1即可。