LeetCode個人筆記python篇(medium)

442. 數組中重複的數據

首先想到的是排序,然後遍歷一遍。

class Solution:
    def findDuplicates(self, nums):
        """
        :type nums: List[int]
        :rtype: List[int]
        """
        two_list = []
        nums2 = sorted(nums)
        for i in range(1,len(nums2)):
            if nums2[i-1] ==nums2[i]:
                two_list.append(nums2[i-1])
        return two_list

但是很顯然,這樣的方法效率不高,不如用字典,類似哈希表。還有一種更快的方法是用集合:

class Solution:
    def findDuplicates(self, nums):
        """
        :type nums: List[int]
        :rtype: List[int]
        """
        a = []
        b = set()
        for num in nums:
            if num in b:
                a.append(num)
            else:
                b.add(num)
        return a

 

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