面試題3 題目二 不修改陣列找出重複數字

2021-10-24 23:22:25 字數 496 閱讀 6884

題目

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

二分的**(思路看書)

public

static

void

main

(string[

] args)

;int left =1;

int right = n -1;

while

(left <= right)

if(count > mid - left +

1)right = mid;

else left = mid +1;

if(left == right)

}}

反思:以後做題要從兩個方向思考:

1.時間複雜度優先

2.空間複雜度優先

面試題3(二) 不修改陣列找出重複的數字

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

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

其他好的解法 測試用例 獲得的思考 在乙個長度為n 1的陣列裡的所有數字都在1 n範圍內,所以陣列中至少有乙個數字重複。找出乙個重複的數字但不能修改原陣列 示例 輸入 輸出 2或3本題是這道題的延伸,劍指 03 陣列中重複的數字 既然給出了陣列長度,第乙個念頭還是想到雜湊法,與上面題中 基本一致,需...

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

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