LeetCode 217:存在重複元素 Contains Duplicate

題目:

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

Given an array of integers, find if the array contains any duplicates.python

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

Your function should return true if any value appears at least twice in the array, and it should return false if every element is distinct.bash

示例 1:app

輸入: [1,2,3,1]
輸出: true
複製代碼

示例 2:函數

輸入: [1,2,3,4]
輸出: false
複製代碼

示例 3:spa

輸入: [1,1,1,3,3,4,3,2,4,2]
輸出: true
複製代碼

解題思路:

​ 排序數組,連續兩個數相等則證實存在重複元素。code

​ 直接用哈希集合:新建一個哈希集合,逐個向集合內添加元素,若是遇到元素未添加成功,則證實存在重複元素,返回 True ,反之返回 False。cdn

代碼:

這裏用的哈希集合解題排序

Java:

class Solution {
    public boolean containsDuplicate(int[] nums) {
        Set<Integer> set = new LinkedHashSet<>();
        for (int num : nums) {
            if (!set.add(num)) return true; //加入集合未成功,證實集合內已有一個相同元素,返回False
        }
        return false;
    }
}
複製代碼

Python:

​ Python中 set() 函數能夠直接將數組轉化爲哈希集合。直接比較轉化後的哈希集合長度與原數組長度是否相等,相等證實原數組無重複元素,不相等則證實原數組含有重複元素。

class Solution:
    def containsDuplicate(self, nums: List[int]) -> bool:
        return len(nums) != len(set(nums)) #比較長度
複製代碼

歡迎關注微.信公.衆號:愛寫Bug

在這裏插入圖片描述
相關文章
相關標籤/搜索