50 陣列中重複的數字

2021-10-09 08:01:37 字數 919 閱讀 6147

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

使用set去重並保持原陣列中元素相對位置不變,將去重後的列表擴容到原陣列一般大,然後再進行逐個元素的比較。若不相同記錄索引位置,在原始列表中找到該索引下的元素,就是第乙個重複的元素。

# -*- coding:utf-8 -*-

class

solution

:# 這裡要特別注意~找到任意重複的乙個值並賦值到duplication[0]

# 函式返回true/false

defduplicate

(self, numbers, duplication)

:# write code here

out =

sorted

(list

(set

(numbers)

), key=numbers.index)

# 去重並保持元素相對位置不變

out = out +[-

1]*(

len(numbers)

-len

(out)

)# 擴容新陣列,否則會報錯

for i in

range

(len

(out)):

if out[i]

!= numbers[i]

: duplication[0]

= numbers[i]

# 複製

return

true

# 返回函式的bool值

return

false

50 陣列中重複的數字

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

JZ50 陣列中重複的數字

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

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

在乙個長度為n的陣列裡的所有數字都在0到n 1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。例如,如果輸入長度為7的陣列,那麼對應的輸出是第乙個重複的數字2。boolean只佔一位,所以還是比較省的 public boolea...