滑动窗口 - 模板

5/3/2022

# 滑动窗口

  • 基本思路:
  1. 分左右指针,左右指针的闭合区间[left, right]就是一个窗口。
  2. 增加窗口右边界,寻找一个可行解,在找到可行解的情况下增加窗口左边界,优化可行解,找到最优解
  • 具体板子
var slidingWindow = function (arr, target) {
    let left=0,right=0,sum=0
    while(right<arr.length){
        sum = arr[right]
        right++
    }
//    ...窗口数据更新
//    判断窗口是否收缩
    while(window needs shrink){
        let d = arr[left];
        left++;
    //    ...操作
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14