![](https://img-blog.csdnimg.cn/20190927151026427.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
单调栈
单调栈
correct!
It's better to burn out than to fade away.
展开
-
单调栈及其应用
单调栈就是一个栈内的元素满足一定的单调性,要么单增、要么单减。例如一个栈{1,3,6,9}满足上升条件,就说是一个单调栈同样{9,6,3,1}是一个单调递减的栈关于栈内元素重复,例如{1,3,3,6,9},这样是否符合一个单调栈的特性,主要看题目要求。关于单调栈的大致原理,无非就是循环遍历数组元素,不停的维护栈的单调性。例如我要维护一个单调递增的栈,如果现在数组中下表为 i 的元素...原创 2019-05-23 08:24:55 · 937 阅读 · 0 评论 -
单调栈求以某一值为最小值的最大区间
这次主要说的是用单调栈求以某一个值为最小值的最大区间上次发的代码也可以求解,但是对于两个相同的值,并且都是整个区间内最小的值,上次的代码不完善,因为它无法把两个值的区间都正确解出来,这主要是因为两个元素的进出栈顺序不同,肯定会有一先一后。其实,这个也不麻烦,两中方法。第一,可以在求完所有值的区间以后遍历一遍,对同一个值的区间我们取最大的。这个方法容易实现,就不写代码了。第二,就是在单调栈的...原创 2019-05-23 13:15:04 · 698 阅读 · 0 评论 -
单调栈练习题 bad hair day
题目链接裸单调栈的题目,直接单调栈即可ps:必须使用数组模拟栈,不能使用stack,stack效率太低,还会爆栈,以后单调栈的题直接用数组模拟,能不用stack就不用stack#include<bits/stdc++.h>using namespace std;const int maxn=100000;int a[maxn];int st[maxn];long...原创 2019-07-26 21:10:00 · 155 阅读 · 0 评论