劍指offer 陣列中的重複數字

2021-08-30 08:54:58 字數 598 閱讀 2899

在乙個長度為n的陣列裡的所有數字都在0到n-1的範圍內。 陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。

輸入:

輸出:

2或3
從頭到尾依次掃瞄這個陣列中的每個數字,當掃瞄到下標為i的數字時,首先比較這個數字(用m表示)是不是等於i。如果是,則接著掃瞄下乙個數字;如果不是,則再拿它和第m個數字進行比較。如果它和第m個數字相等,就找到了乙個重複的數字;如果它和第m個數字不相等,就把第i個數字和第m個數字交換,把m放到屬於它的位置。接下來再重複這個比較、交換的過程,直到我們發現乙個重複的數字。

int duplicate(int array)

int length = array.length;

for(int i=0; ilength-1)

}for(int i=0; iint temp = array[i];

array[i] = array[temp];

array[temp] = temp;}}

return -1;

}

劍指offer 陣列中的重複數字

題目 陣列中的重複數字。在乙個長度為n的陣列裡所有的數字都在0 n 1範圍,陣列中某些數字是重複的,但是不知道有幾個數字重複了,請找出陣列中任意乙個重複的數字。例如 長度為7的陣列 2,3,1,2,5,3 重複的數字是2或者3。分析 方法 1 用兩層for迴圈,拿著每乙個資料與剩下的每乙個比較,看看...

劍指offer 陣列中的重複數字

在乙個長度為n的陣列裡的所有數字都在0到n 1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。例如,如果輸入長度為7的陣列,那麼對應的輸出是第乙個重複的數字2。首先,必須對陣列進行遍歷,在遍歷過程中,在基於雜湊表實現的unord...

劍指offer 陣列中的重複數字

在乙個長度為 n 的陣列 nums 裡的所有數字都在 0 n 1 的範圍內。陣列中某些數字是重複的,但不知道有幾個數字重複了,也不知道每個數字重複了幾次。請找出陣列中任意乙個重複的數字。示例 乙個陣列中在只要遇到乙個重複數字就返回該數字,那後面是否還有重複數字不許用考慮。那麼遇到重複數字問題,我們可...