陣列中重複的數字

2021-07-22 05:46:12 字數 486 閱讀 2305

題目:在乙個長度為n的陣列裡的所有數字都在0到n-1的範圍內。 陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。 例如,如果輸入長度為7的陣列,那麼對應的輸出是重複的數字2或者3。

思路:用雜湊表解決的時間複雜度和空間複雜度為o(n)。因為陣列中的數字都在0到n-1的範圍內,我們可以重排這個陣列。從頭到尾掃瞄這個陣列中的每個數字,當下標為i時,比較這個數字(m)是不是等於i,如果是,接著掃瞄下乙個數字。如果不是,再拿它和第m個數字比較,如果它和第m個數字相等,就找到了乙個重複的數字(該數字在下標為i和m的位置都出現了);如果它和第m個數字不相等,就把第i個數字和第m個數字交換,把m放到屬於它的位置。接著重複這個比較、交換。

public boolean duplicate(int numbers,int length,int duplication)

for(int i=0;ilength-1)

}for(int j=0;j

陣列 陣列中重複的數字

在乙個長度為n的陣列裡的所有數字都在0到n 1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。例如,如果輸入長度為7的陣列,那麼對應的輸出是第乙個重複的數字2。思路 python 實現 an highlighted block ...

陣列中重複的數字

在乙個長度為n的陣列裡的所有數字都在0到n 1的範圍內。陣列中某些數字是重複的,但不知道哪幾個 數字重複了,也不知道每個數字重複了幾次。請找出陣列中任意乙個重複的數字。例如 如果輸入長度為7的陣列,那麼對應的輸出是重複的數字2或者3。include iostream using namespace ...

陣列中重複的數字

在乙個長度為n的陣列裡的所有數字都在0到n 1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。例如,如果輸入長度為7的陣列,那麼對應的輸出是重複的數字2或者3。1 2 3 4 5 6 7 8 9 10 11 12 boolean...