Leetcode面試題03 陣列中重複的數字

2021-10-03 22:40:07 字數 966 閱讀 8232

找出陣列中重複的數字。

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

示例:

輸入:

[2, 3, 1, 0, 2, 5, 3]

輸出:2 或 3

說明:

2 <= n <= 100000

思路:是雜湊表tag下較為簡單的一道題。上來就直接省事用雜湊表hashmap的結構來解決,其實並沒有必要,還浪費空間。

class

solution

return-1

;}}

複雜度分析

class

solution

}return repeat;

}}

思路:抓住題目條件,數字長度為n

nn,且裡面的數值都在0到n−1

n-1n−

1的範圍內,其實可以理解為,如果沒有重複的話,那對每個數值來說,就是乙個蘿蔔乙個坑。那麼就可以依次對陣列中的每個元素歸位,如果在歸位過程中,遇到重複,則返回該數。雖然也是o(n

)o(n)

o(n)

的時間複雜度,但執行起來比前兩個方法快很多。

class

solution

temp=nums[i]

; nums[i]

=nums[temp]

; nums[temp]

=temp;}}

return-1

;}}

Leetcode 面試題03 陣列中重複的數字

找出陣列中重複的數字。在乙個長度為 n 的陣列 nums 裡的所有數字都在 0 n 1 的範圍內。陣列中某些數字是重複的,但不知道有幾個數字重複了,也不知道每個數字重複了幾次。請找出陣列中任意乙個重複的數字。示例 1 輸入 2,3,1,0,2,5,3 輸出 2 或 3 限制 2 n 100000思路...

面試題03 陣列中重複的數字

題目二 不修改陣列找出重複的數字 相似題目 在乙個長度為n的陣列裡的所有數字都在0 n 1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。例如,如果輸入長度為7的陣列,那麼對應的輸出是第乙個重複的數字2。解決這個問題的乙個簡單的...

面試題03 陣列中重複的數字

在乙個長度為 n 的陣列 nums 裡的所有數字都在 0 n 1 的範圍內。陣列中某些數字是重複的,但不知道有幾個數字重複了,也不知道每個數字重複了幾次。請找出陣列中任意乙個重複的數字。只輸出第乙個重複的數字 示例 1 輸入 2,3,1,0,2,5,3 輸出 2解決辦法 使用hashset 如果出現...