滑动窗口算法框架:JavaScript 实现
/* 滑动窗口算法框架 */ function slidingWindow(s, t) { const need = new Map(); const window = new Map(); for (let c of t) { need.set(c, need.get(c) + 1 || 1); }
let left = 0, right = 0;
let valid = 0;
while (right < s.length) {
// c 是将移入窗口的字符
const c = s[right];
// 右移窗口
right++;
// 进行窗口内数据的一系列更新
...
/*** debug 输出的位置 ***/
console.log(`window: [${left}, ${right})`);
/********************/
// 判断左侧窗口是否要收缩
while (window needs shrink) {
// d 是将移出窗口的字符
const d = s[left];
// 左移窗口
left++;
// 进行窗口内数据的一系列更新
...
}
}
}
原文地址: http://www.cveoy.top/t/topic/qwSX 著作权归作者所有。请勿转载和采集!