找出陣列中重複的數字。
在乙個長度為 n 的陣列 nums 裡的所有數字都在 0~n-1 的範圍內。陣列中某些數字是重複的,但不知道有幾個數字重複了,也不知道每個數字重複了幾次。請找出陣列中任意乙個重複的數字。
示例 :
輸入:[2
,3,1
,0,2
,5,3
]輸出:2 或 3
限制:
2 <= n <= 100000
思路一:暴力
遍歷陣列,用set集合過濾重複數字
class
solution
}return repeat;
}}
時間複雜度:o(n)。
空間複雜度:o(n)。
思路二:原地置換
如果沒有重複數字,那麼正常排序後,數字i應該在下標為i的位置,所以思路是從頭掃瞄陣列,遇到下標為i的數字如果不是i的話(假設為m),那麼我們就拿與下標m的數字交換。在交換過程中,如果有重複的數字發生,那麼終止返回
class
solution
temp=nums[i]
; nums[i]
=nums[temp]
; nums[temp]
=temp;}}
return-1
;}}
時間複雜度 o(n) 。
空間複雜度o(1) 。
陣列 陣列中重複的數字
在乙個長度為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。思路 用雜湊表解決的時間複雜度和空間複雜度為o n 因為陣列中...