LeetCode:217. Contains Duplicate(找出數組中重複的數)

文章最前: 我是Octopus,這個名字來源於我的中文名--章魚;我熱愛編程、熱愛算法、熱愛開源。所有源碼在我的個人github ;這博客是記錄我學習的點點滴滴,如果您對 Python、Java、AI、算法有興趣,可以關注我的動態,一起學習,共同進步。

相關文章:

  1. LeetCode:55. Jump Game(跳遠比賽)
  2. Leetcode:300. Longest Increasing Subsequence(最大增長序列)
  3. LeetCode:560. Subarray Sum Equals K(找出數組中連續子串和等於k)

文章目錄:

題目描述:

java實現方法1:

python實現方法1:

java實現方法2:

python實現方式2:

源碼地址:https://github.com/zhangyu345293721/leetcode


題目描述:

給定一個整數數組,判斷是否存在重複元素。

如果任何值在數組中出現至少兩次,函數返回 true。如果數組中每個元素都不相同,則返回 false。

示例 1:

輸入: [1,2,3,1]
輸出: true

示例 2:

輸入: [1,2,3,4]
輸出: false

示例 3:

輸入: [1,1,1,3,3,4,3,2,4,2]
輸出: true

著作權歸領釦網絡所有。商業轉載請聯繫官方授權,非商業轉載請註明出處。


java實現方法1:

   /**
     * 數組中是否包含重複的數
     *
     * @param nums 數組
     * @return 布爾值
     */
    public boolean containsDuplicate(int[] nums) {
        Map<Integer, Integer> map = new HashMap<>();
        for (int num : nums) {
            map.put(num, map.getOrDefault(num, 0) + 1);
        }
        for (Map.Entry<Integer, Integer> entry : map.entrySet()) {
            if (entry.getValue() > 1) {
                return false;
            }
        }
        return true;
    }

時間複雜度:O(n)

空間複雜度:O(n)


python實現方法1:

def contains_duplicate(nums: List[int]) -> bool:
    '''
        判斷是否有重複的數
    Args:
        nums: 數組
    Returns:
        布爾值
    '''
    number_dict = {}
    for num in nums:
        if num in number_dict:
            number_dict[num] += 1
        else:
            number_dict[num] = 1
    for num in number_dict.values():
        if num > 1:
            return True
    return False

時間複雜度:O(n)

空間複雜度:O(n)


java實現方法2:

  /**
     * 數組中是否包含重複的數
     *
     * @param nums 數組
     * @return 布爾值
     */
    public boolean containsDuplicate2(int[] nums) {
        Set<Integer> set = new HashSet<>();
        for (int num : nums) {
            if (set.contains(num)) {
                return true;
            } else {
                set.add(num);
            }
        }
        return false;
    }

時間複雜度:O(n)

空間複雜度:O(n)


python實現方式2:

def contains_duplicate2(nums: List[int]) -> bool:
    '''
        判斷是否有重複的數
    Args:
        nums: 數組
    Returns:
        布爾值
    '''
    number_set = set()
    for num in nums:
        if num in number_set:
            return True
        else:
            number_set.add(num)
    return False

時間複雜度:O(n)

空間複雜度:O(n)


源碼地址:https://github.com/zhangyu345293721/leetcode

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章