陣列中重複的數字

2021-09-24 10:14:55 字數 655 閱讀 7326

在乙個長度為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 因為陣列中...