劍指offer3 2 不修改陣列找出重複的數字

2021-10-08 14:25:44 字數 748 閱讀 9369

在乙個長度為n+1的陣列裡的所有數字都在1到n的範圍內,所以陣列中至少有乙個數字是重複的。請找出陣列中任意乙個重複的數字,但不能修改輸入的陣列。例如,如果輸入長度為8的陣列,那麼對應的輸出是重複的數字2或者3。

public

static

boolean

duplicate2

(int numbers,

int length,

int[

] duplication)

//判斷陣列值是否符合和要求

for(

int number : numbers)

} hashset

set =

newhashset

<

>()

;for

(int number : numbers)

}return

false

;}

時間複雜度o(n),空間複雜度o(n)

public

intfindduplicate

(int

nums)

while

(slow!=fast)

; slow=0;

while

(slow!=fast)

return slow;

}時間複雜度o

(n),空間複雜度o(1

)

劍指Offer 不修改陣列找出重複的數字

在乙個長度為n 1的陣列裡,所有的數字都在1 n的範圍內,所以陣列中至少有乙個數字是重複的 因為長度為n 1,而1 n只有n個數字,也就是說就算每個數字不一樣,都會空餘乙個位置,所以至少有乙個重複的數字 請找出陣列中任意乙個重複的數字,但是不能修改輸入的陣列。例如,如果輸入長度為8的陣列,那麼對應輸...

劍指offer題目 不修改陣列找出重複的數字

沒有在牛客網的oj上找到這個題目所以寫在部落格裡記錄一下 題目 在乙個長度為n 1的陣列裡的所有數字都在1 n的範圍內,所以陣列中至少有乙個數字是重複的。請找出陣列中任意乙個重複的數字,但不能修改輸入的陣列。例如,如果輸入長度為8的陣列,那麼對應的輸出是重複的數字2或者3.題目中說了不能改變輸入的陣...

劍指offer 不修改陣列找出重複的數字go語言版

題目描述 給定乙個長度為n 1的陣列nums,陣列中所有的數均在1 n 的範圍內,其中 n 1。請找出陣列中任意乙個重複的數,但不能修改輸入的陣列。樣例給定 nums 2,3,5,4,3,2,6,7 返回 2 或 3。思考題 如果只能使用 o 1 的額外空間,該怎麼做呢?題目思路 該題目主要使用二分...