天天看點

【leetcode刷題】24.數組中重複的數字——Java版

【leetcode刷題】24.數組中重複的數字——Java版
【leetcode刷題】24.數組中重複的數字——Java版

前言

哈喽,大家好,我是一條。

糊塗算法,難得糊塗

今天做一道劍指offer的題。

Question

劍指 Offer 03. 數組中重複的數字

難度:簡單

找出數組中重複的數字。

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

示例 1:

輸入:
[2, 3, 1, 0, 2, 5, 3]
輸出:2 或 3       

限制:

2 <= n <= 100000

Solution

做了這麼多題,這題應該算是比較簡單了

但是又不簡單,就像評論說的,我們面試的時候,一定要問好時間和空間的要求

建立一個hashset

依次加入數組元素,加入失敗,就将該數字傳回,并終止循環。

Code

所有leetcode代碼已同步至github

歡迎star

/**
 * @author yitiaoIT
 */
class Solution {
    public int findRepeatNumber(int[] nums) {
        Set<Integer> set = new HashSet<>();
        for(int n : nums) {
            if(!set.add(n)){
              return n;
            } 
        }
        return -1;
    }
}      

Result

複雜度分析
  • 時間複雜度:O(N)
【leetcode刷題】24.數組中重複的數字——Java版

🌈尋寶

⭐今天是堅持刷題更文的第24/100天

⭐各位的點贊、關注、收藏4、評論、訂閱就是一條創作的最大動力

⭐更多算法題歡迎關注專欄《leetcode》

為了回饋各位粉絲,禮尚往來,給大家準備了一條多年積累下來的優質資源,包括 學習視訊、面試資料、珍藏電子書等

怎麼領取請大家自己找,尋寶遊戲現在開始。

找不到可以評論留言,一條就會注意到你。

如果還不行,請私信我。