/* 滑动窗口算法框架 */ 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++;
        // 进行窗口内数据的一系列更新
        ...
    }
}

}

滑动窗口算法框架:JavaScript 实现

原文地址: http://www.cveoy.top/t/topic/qwSX 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录