Python教程

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

本文主要是介绍【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(self, nums, k):         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
这篇关于【leet-code】219. 存在重复元素 II之Python enumerate() 函数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!