在乙個長度為n的陣列裡所有的數字都在0~n-1的範圍內,陣列中的某些數字是重複的,但不知道重複了哪些數字。請找出陣列中重複的數字。
1.hash表的思想,此方法最貼近人的自然想法啦,當我們看到這個問題時,一般都是一邊掃過去,一邊記下了前邊的內容,然後看到新的數字再與記憶的內容對比。時間複雜度:o(n),空間複雜度:o(n)。2.利用此題的特性,長度為n,範圍是0~n-1,意味著數字n的下標正好也是n。o(n) o(1)
3.利用set集合,新的元素看在set裡是否有。 o(n),o(n)
class solution:
def findrepeatnumber(self, nums: list[int]) -> int:
index=0
while indexif index==nums[index]:
index+=1
else:
tmp=nums[index]
if nums[tmp]!=tmp:
nums[tmp],nums[index]=nums[index],nums[tmp]
else:
return nums[index]
陣列 陣列中重複的數字
在乙個長度為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 因為陣列中...