03 陣列中的重複數字

2021-10-18 04:34:29 字數 913 閱讀 1144

題目描述(劍指offer3)

在乙個長度為 n 的陣列裡的所有數字都在 0 到 n-1 的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的,也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。

示例input:

output:

2
首先放乙個時間複雜度 o(n),空間複雜度 o(1)的方法,因為數字範圍是[0,n-1],就把數字放在它該去的地方,若某個地方已經存在了這個數字,則它是重複的。。

public

boolean

duplicate

(int

nums,

int length,

int[

] duplication)

swap

(nums, i, nums[i]);

}}return

false;}

private

void

swap

(int

nums,

int i,

int j)

這個解法應該是正確的,但是在牛客上並不能百分百通過,好像牛客網上有個用例預設是找到第乙個重複的數字(坑)。

所以。。。還是笨方法

public

boolean

duplicate

(int numbers,

int length,

int[

] duplication)

for(

int i =

0; i < length; i++)}

}return

false

;}

陣列中重複數字

題目描述 在乙個長度為n的陣列裡的所有數字都在0到n 1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中第乙個重複的數字。例如,如果輸入長度為7的陣列,那麼對應的輸出是第乙個重複的數字2。返回描述 如果陣列中有重複的數字,函式返回true,否則返回...

陣列中的重複數字

在乙個長度為n的陣列裡的所有數字都在0到n 1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。例如,如果輸入長度為7的陣列,那麼對應的輸出是重複的數字2或者3。1 排序 將陣列排序,然後掃瞄排序後的陣列即可。時間複雜度 o nl...

陣列中的重複數字

題目 在乙個長度為n的陣列裡的所有數字都在0 n 1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字重複了,也不知道每個數字重複了幾次。請找出陣列中任意重複的數字。例如 如果輸入長度為7的陣列,那麼對應的輸出的重複的數字2或者3。分析 陣列中的數字都在0 n 1之間,如果沒有該陣列中沒有重複的數...