Contains Duplicate[LeetCode/Python3/Easy]

題目

給定一個整數陣列 nums,如果在陣列中有任何值出現至少兩次,則返回 true;如果每個元素都是唯一的,則返回 false

例 1:

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

例 2:

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

例 3:

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

限制:

  • 1 <= nums.length <= 105
  • 109 <= nums[i] <= 109

我的答案

第一個答案

class Solution:
    def containsDuplicate(self, nums: List[int]) -> bool:
        appeared_element={}

        for item in nums:
            if item in appeared_element:
                return True
            else:
                appeared_element[item]=1
        
        return False


原本一開始我還使用list來存出現過的數字,結果執行時間超過上限,後來改成用dictionary來存,就可以通過!因為dictionary的資料結構為hash table,在查詢上的速度會比list快上許多。

第二個答案

class Solution:
    def containsDuplicate(self, nums: List[int]) -> bool:
        
        if len(nums)>len(set(nums)):
            return True
        else:
            return False


 



留言

這個網誌中的熱門文章

[理財/記帳]google表單結合iphone捷徑 自製記帳app

[理財/記帳]利用google表單記帳雲端化 - 免費模板下載@ Mimi's learning notes

[Excel]年份週數換算成月份