陣列中重複的數字

2021-09-11 15:57:36 字數 1357 閱讀 7949

題目描述

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

示例1輸入

複製輸出

複製

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

class solution:

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

# 函式返回true/false

def duplicate(self, numbers, duplication):

if not numbers:

return false

res =

for i in numbers:

if i in res:

duplication[0] = i

return true

else:

return false

方法二:1.遍歷陣列,判斷當前位的值和這個值得下標是否相等,

2.如果相等,則遍歷下一位

3.若不等,則將這個位置i上的元素和位置a[i]上的元素相比較,如果相等,則成功(原因:相等表示這個數第二次出現,因為前面已經讓位置i的元素和位置a[i]上的元素交換,讓a[i]位置上的值和它的下標對應,但位置i上的值和它的下標不一定對應,再次出現這個數之後,讓再次出現的數和以這個數為下標的元素對比,如果相等,則找到重複的數字)若不等,則將它們兩交換。換完之後a[i]位置上的值和它的下標是對應的,但i位置上的元素和下標並不一定對應。重複3.的操作,直到當前位置i的值也為i,將i向後移一位。再重複1.

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

class solution:

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

# 函式返回true/false

def duplicate(self, numbers, duplication):

# write code here

for i in range(len(numbers)):

while numbers[i] != i:

temp = numbers[numbers[i]]

if temp == numbers[i]:

duplication[0] = numbers[i]

return true

else:

numbers[numbers[i]] = numbers[i]

numbers[i] = temp

return false

陣列 陣列中重複的數字

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