劍指offer之 陣列中重複的數字

2021-10-03 16:17:58 字數 549 閱讀 6720

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

暴力解法,遍歷,發現重複即返回true和重複數字

hash,由於數字為1~n-1,則可以建立hash陣列儲存每個數字出現的個數即可,若個數超過2,則說明重複

利用題目特性,n個數字,均小於n,則可以將數字恢復到數字標對應的位置,即數字i回到第i個位置,若發現i=numbers[i],出現重複,返回即可

方法一:

class solution 

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

}return false;

}};

方法三:

class solution 

else

else //沒有重複,則換位置}}

return false;

}};

劍指offer之陣列中重複的數

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

劍指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 考查 陣列 雜...