Leetcode 217。包含重复内容

问题描述 投票:0回答:2

我的Python代码: 在这个例子中,我使用 hashmap 并在将数组元素插入到 hashmap 之前进行比较,如果该元素已经存在则返回 True...

class Solution(object):
    def containsDuplicate(self, nums):
        """
        :type nums: List[int]
        :rtype: bool
        """
        map={}
        for i in range(len(nums)):
            if nums[i] in map:
                return True
            map[i]=nums[i]
        return False

这段代码给了我错误的 [3,3] 答案,即 false 但预期输出是 true 我尝试为此进行试运行,但根据我的代码,我变得真实了 如果我有任何错误请告诉我

python-3.x algorithm data-structures
2个回答
0
投票

您的方法是缓存数字和所有索引:

class Solution(object):
    def containsDuplicate(self, nums):
        """
        :type nums: List[int]
        :rtype: bool
        """
        map = {}
        for i, num in enumerate(nums):
            if num in map:
                return True
            map[num] = i
        return False

更好的方法是使用

set()
如评论:


class Solution:
    def containsDuplicate(self, nums):
        return len(nums) != len(set(nums))



0
投票

它不如使用集合那么有效。这种情况下的时间复杂度是 O(N)

class Solution:
    def containsDuplicate(self, nums: List[int]) -> bool:
        counts = {}
        for num in nums:
            if num in counts:
                return True
            counts[num] = 1
        return False # No duplicates found
© www.soinside.com 2019 - 2024. All rights reserved.