单调队列
顾名思义,单调队列就是具有单调性的队列,我们需要用双端队列来实现。
双端队列与普通队列的唯一区别就是它可以从两边弹出。
打个形象一点儿的比方
一群人在食堂排队打饭
![](https://i-blog.csdnimg.cn/blog_migrate/855f555a0c5f942e7187440b2b33039a.png)
这个时候来了一个新的小伙伴
![](https://i-blog.csdnimg.cn/blog_migrate/f053718a9b059b7cb204c3b51653463b.png)
这个小伙伴很霸道地想要去插队,其他小伙伴们肯定不会同意,但是打不过这个新伙伴,于是就被赶走了。
![](https://i-blog.csdnimg.cn/blog_migrate/ebb18a67abdf5eefebbf8c90a2c1661d.png)
但是呢,它又打不过最前面的那个6,于是就只有乖乖地站在它后面
![](https://i-blog.csdnimg.cn/blog_migrate/40b254f61e29925a6d573c2bc05d6e8c.png)
过了一会儿,6打完了饭离开了队列,而5还在队列中继续打饭
![](https://i-blog.csdnimg.cn/blog_migrate/341dc5263d241237c3e7ee4a3ce3cf6d.png)
以上大概就是单调队列的操作规则
单调队列的应用
百度上对单调队列的解释是:
不断地向缓存数组里读入元素,也