劍指offer 陣列中重複的數字

2021-09-02 07:53:44 字數 495 閱讀 1079

題目描述

最簡單的方法:我最直接的想法就是構造乙個容量為n的輔助陣列b,原陣列a中每個數對應b中下標,首次命中,b中對應元素+1。如果某次命中時,b中對應的不為0,說明,前邊已經有一樣數字了,那它就是重複的了。

舉例:a,剛開始b是,開始掃瞄a。

a[0] = 1

a[1] = 2

a[2] = 3

a[3] = 3 ,到這一步,就已經找到了重複數字。

a[4] = 4

a[5] = 5

時間複雜度o(n),空間複雜度o(n),演算法優點是簡單快速,比用set更輕量更快,不打亂原陣列順序。

如果不能用輔助空間,可以參照劍指。

參考的方法

public

class

solution

}return

false;}

}

劍指offer 陣列中重複的數字

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

劍指offer 陣列中重複的數字

在乙個長度為n的陣列裡的所有數字都在0到n 1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。例如,如果輸入長度為7的陣列,那麼對應的輸出是重複的數字2或者3。分析 雖然也ac了,但是沒仔細看題,可以利用題目已有條件做到更簡單的...

劍指offer 陣列中重複的數字

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