劍指Offer(書) 陣列中重複的數字

2022-08-01 02:00:14 字數 657 閱讀 6560

題目:找出陣列中重複的數字。

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

分析:關鍵點:長度為n的陣列裡的所有數字都在0~n-1的範圍內。既然數字都在0-n-1,那麼可以將資料放入下標中。若下標中已存在此數,則表明此資料重複。否則,交換numbers[i]    numbers[numbers[i]]

public

int duplicate(int

numbers)

int result = -1;

int length =numbers.length;

for (int i = 0; i < length; i++)

if (numbers[i] ==numbers[numbers[i]])

//交換numbers[i] numbers[numbers[i]];

int temp =numbers[i];

numbers[i] =numbers[temp];

numbers[temp] =temp;}}

return

result;

}

劍指offer 陣列中重複的數

題目描述 在乙個長度為n的陣列裡的所有數字都在0到n 1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。例如,如果輸入長度為7的陣列,那麼對應的輸出是第乙個重複的數字2。開始我考慮的是,先將陣列排序,然後逐個比較,如果有相等的,...

劍指offer 《陣列中重複的數 》

詳細描述 在乙個長度為 n 的陣列 nums 裡的所有數字都在 0 n 1 的範圍內。陣列中某些數字是重複的,但不知道有幾個數字重複了,也不知道每個數字重複了幾次。請找出陣列中任意乙個重複的數字。示例 1 輸入 2,3,1,0,2,5,3 輸出 2 或 3 限制 2 n 100000 考查 陣列 雜...

劍指offer之陣列中重複的數

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