单调队列-上
左程云
前置知识 :
讲解013-用数组方式实现队列(常数时间比语言自己提供的好)
讲解049-滑动窗口
单调队列最经典的用法是解决如下问题:
滑动窗口在滑动时,r++代表右侧数字进窗口,l++代表左侧数字出窗口
这个过程中,想随时得到当前滑动窗口的 最大值 或者 最小值
窗口滑动的过程中,单调队列所有调整的总代价为O(n),单次操作的均摊代价为O(1)
图解一下!
注意:这是单调队列最经典的用法,可以解决很多题目,下节课将继续介绍其他的用法
注意:单调队列可以和很多技巧交叉使用!比如:动态规划+单调队列优化,会在【扩展】课程里讲述