单调栈和单调队列
其实我栈和队列学的不太好
这有点伤......
单调栈及单调队列是维护顺序排列(升序或降序)的一种数据结构
非常类似于DP中的最优状态保存和查询
因此可用单调队列维护DP
本蒟蒻不会DP
维护的手段就是如果满足单调性加入,不满足单调性退出
遍历时间O(n),但是查最值的开销就是O(1)
保证及时更新单调栈或单调队列数据即可
有的可以用单调队列优化成O(n)
求双最值的多跑几遍就行了
有二维的就嵌套就行了
有特殊性质的特判掉就行了
单调栈/队列本身构造不难,难的是如何构造以及以后的维护过程
最后,无论是单调栈还是其他数据结构,设计的目的最好只维护它们本身的性质