本文主要是介绍Leetcode 219. 存在重复元素 II (3种解法:哈希表、排序、滑动窗口),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
class Solution(object):def containsNearbyDuplicate(self, nums, k):# 哈希表d = {}for i in range(len(nums)):if nums[i] in d:if -k <= i - d[nums[i]] <= k:return Trued[nums[i]] = ireturn False# 排序enum = [(n, i) for i, n in enumerate(nums)]enum.sort()for i in range(1, len(enum)):a, b = enum[i-1], enum[i]if a[0] == b[0] and abs(a[1]-b[1]) <= k:return Truereturn False# 滑动窗口n = len(nums)if (n <= 1):return Falserecode = set()for i in range(n):if nums[i] in recode:return Truerecode.add(nums[i])if len(recode) > k:recode.remove(nums[i - k])return False
这篇关于Leetcode 219. 存在重复元素 II (3种解法:哈希表、排序、滑动窗口)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!