Problem 239: Sliding Window Maximum
思路
Sliding Window 类题目,一类是之前的那种 window size 可以改变的,可以用两根指针 left, right 来不断调整;还有一类题目就是这道题,window size 固定,这时候就需要额外的数据结构来优化,比如这里的 deque
deque 其实就是 double ended queue 可以两头进行添加或删除。
我们要维持一段 window size 的 index 范围,这里用
i - k + 1
来表示 window 的开头元素。整个 deque 维护的是 nums 的 index如果超过了 window 范围,我们把元素 poll() 出去;如果新来的元素比上一次来的元素大,我们把最后的元素 poll() 出去。
易错点
注意什么时候 poll() 开头,什么时候 poll() 尾巴
如果新来的元素比较大,要连续 poll(),用 while 循环实现,不能用 if
PreviousProblem 340: Longest Substring with At Most K Distinct CharactersNextProblem 187: Repeated DNA Sequences
Last updated