python 陣列中重複的數字

2021-10-01 10:30:47 字數 1272 閱讀 9410

題目一:找出陣列中重複的數字

長度為n的陣列裡所有數字都在0~n-1的範圍內。請找出陣列中任意乙個重複的數字。

比如,那麼對應輸出的重複的數字是2或者3

思路:

一次掃瞄陣列,判斷下標為i的數字是否等於i,如果是,接著掃瞄下乙個,如果不是,拿它跟第m個數字進行比較。如果它和m個數字相等,就找到了乙個重複的數字,如果不相等,就把第i個數字和第m個數字交換,把m放到屬於他的位置。重複以上過程,直到找到乙個重複的數字。

python**:

def

duplicate

(nums)

:if nums ==

none

orlen

(nums)

<=0:

return

false

for num in nums:

if num <

0or num >

len(nums)-1

:return

false

for i in

range

(len

(nums)):

while nums[i]

!= i:

if nums[i]

== nums[nums[i]]:

return

true

else

: tmp = nums[i]

nums[i]

= nums[tmp]

nums[tmp]

= tmp

return

false

a = duplicate([2

,1,0

,2,5

,3])

print

("a: "

, a)

題目二:不修改陣列找出重複的數字

在乙個長度為n+1的陣列裡的所有數字都在1~n的範圍內,所以陣列中至少有乙個數字是重複的。請找出陣列中任意乙個重複的數字。

思路:

我們把從1~n的數字從中間的數字m分為兩部分,前面一半為1-m,後面一半為m+1–n,如果1-m的數字的數目超過m,那麼這一半的區間裡一定包含重複的數字,否則,另一半m+1–n的區間裡一定包含重複的數字。繼續這個重複的過程,直到找到重複的數字。

python**:

python 陣列中重複的數字

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

1 陣列中重複的數字(python)

題目描述 找出陣列中重複的數字。乙個長度為 n 的陣列 nums 裡的所有數字都在 0 n 1 的範圍內。陣列中某些數字是重複的,但不知道有幾個數字重複了,也不知道每個數字重複了幾次。請找出陣列中任意乙個重複的數字。示例 輸入 2,3,1,0,2,5,3 輸出 2 或 3 方法1 將陣列變為有序,依...

陣列 陣列中重複的數字

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