Task 01 存在重复元素
题目描述:输入整数数组nums和整数k,如果数组内存在两个相等的值,并且abs(i - j)<= k,如果存在返回true,否则返回false。
解题思路:一开始用暴力解法,提交后一直超时。后来用滑动窗口法,以不超过k+1的窗口滑动。
s = set() #
for i, num in enumerate(nums):
if i > k:
s.remove(nums[i - k - 1]) # 当 i > k,将 i -k-1处的元素移出哈希集合
if num in s: # 判断nums[ i ]是否在哈希集合中,如果存在则返回True
return True
s.add(num)
return False
该博客介绍了如何利用滑动窗口和哈希集合高效解决编程题,即检查给定数组中是否存在两个相等元素且它们的下标之差的绝对值小于或等于k。原始方法超时,采用滑动窗口优化后显著提高了效率。
531

被折叠的 条评论
为什么被折叠?



