滑动窗口两大应用场景
滑动窗口两大应用场景
1. 求最值
这种情况下,窗口要满足的条件已知,长度未知,而要求的答案也就是窗口长度的最值。
一般都是求最短的窗口,因为滑动窗口往往是把多余的去掉,直到刚刚好满足条件为止。
解法: 根据要满足的条件去拉伸窗口,然后统计答案。
大部分题目都是这样。
2. 统计个数
窗口长度固定,条件已知,要统计所有满足条件的窗口。
这类题目比较少,典型例子:Leetcode 30. 串联所有单词的子串
番外
Leetcode 30. 串联所有单词的子串和76. 最小覆盖子串当中,我们使用的hh和tt指针功能是一个队列,但是我们没有必要参照循环队列的设计方式去移动下标(即hh==tt为空,tt + 1 == hh为满),这里的hh和tt是在目标序列上移动表示位置的,只要能恰当表示位置即可,考虑太多循环队列的下标移动方式,会带来不必要的思维负担。

浙公网安备 33010602011771号