【leet-code】219. 存在重复元素 II之Python enumerate() 函数

给你一个整数数组 nums 和一个整数 k ,判断数组中是否存在两个 不同的索引 i 和 j ,满足 nums[i] == nums[j] 且 abs(i - j) <= k 。如果存在,返回 true ;否则,返回 false 。

循序渐进的学习和写码及学习的过程!并且学到一个Python enumerate() 函数,很方便。

class Solution(object):
    def containsNearbyDuplicate(selfnumsk):
        dict={}
        #1、方法1
        #此法错误,获取index(num)取值总是第一个,于是改为索引
        # for num in nums:
        #     dict[num]=[]
        #     if num  not in dict.keys():                
        #         dict[num]=nums.index(num)
        #     else:
        #         dict[num].append(nums.index(num))
        #     # dict[num].append(nums.index(num))
        # print(dict)


        #方法2----超时
        #字典的值在每次被添加被清空
        # for i in range(len(nums)):
        #     if nums[i] not in dict.keys():
        #         dict[nums[i]]=list()
        #     dict[nums[i]].append(i)
        # # print(dict)

        # 方法3、接着求长度超过1,取里面的最小值相减,与k比较
        # for value in dict.values():
        #     if len(value)>1:
        #         print(value)
        #         for i in range(len(value)-1):
        #             if value[i+1]-value[i]<=k:
        #                 return True
        # return False

        #方法4--字典被添加时比较---超时
        # for i in range(len(nums)):
        #     if nums[i] not in dict.keys():
        #         dict[nums[i]]=list()
        #         dict[nums[i]].append(i)
        #     else:
        #         if i-dict[nums[i]][0]<=k:
        #             return True
        #         else:
        #             dict[nums[i]].pop()
        #             dict[nums[i]].append(i) 
        # return False

        #方法5-字典添加时比较,不用列表------超时
        # for i in range(len(nums)):
        #     if nums[i] in dict.keys() and i-dict[nums[i]]<=k:
        #         return True
        #     else:
        #         dict[nums[i]]=i         
        # return False

        #方法6      
        for i, num in enumerate(nums):
            if num in dict and i - dict[num] <= k:
                return True
            dict[num] = i
        return False
posted @ 2022-01-19 18:54  Jessica·Zhang  阅读(114)  评论(0编辑  收藏  举报