滑动窗口框架

100 阅读1分钟

概述

  • 先阐述下滑动窗口是一类怎么样的问题
    • 窗口: 说明肯定是连续的,但是窗口的大小是不知道的

    • 滑动窗口问题,重点是判断窗口类的对象是否满足条件!,如果满足条件,就记录,然后减少窗口的大小(左指针),如果不满足条件,就增大窗口的大小(右指针)

public void search(int[] nums) {
    // 左右指针确定
    int left = 0, right = 0;
    // 开始扩大 右指针的访问
    while (right < nums.length) {
        // 增加窗口的大小
        windows.add(nums[right]);
        // 指向下一个位置,还未加入的位置
        right++;
        // 条件成立
        while (judge(windows)){
            //执行相关的记录操作
            dosomething();
            // 移除窗口类的左边
            windows.remove(nums[left]);
            left++;
        }
    }
}
  • 关键点:
    • 双重 while 循环!!

参考