滑动窗口算法
力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台
class Solution {
public boolean containsNearbyDuplicate(int[] nums, int k) {
//滑动窗口(滑动和记忆)
int l = 0;
int r = 0;
HashMap<Integer,Integer> map = new HashMap();
while(r < nums.length){
//滑动
//扩大窗口
while(r < nums.length && r - l <= k){
if(map.containsKey(nums[r]) && r-map.get(nums[r]) <= k){
return true;
}
map.put(nums[r],r);//记忆
r++;
}
//缩小窗口
l = r;
}
return false;
}
}