单调栈常用于解决一些数组或序列相关的问题,如找到下一个更大元素、下一个更小元素。 模板奉上: 第一种使用stack Python Python stack st;//单调栈,存储元素的下标 nums[n]=-1;//多加一个-1元素,防止到最后栈中还是单调递增栈,未能更新最大值//单调递减栈就是nums[n]=0x3f3f3f;for(int i=0;i n;...
栈:先进后出。 队列:先进先出。 数组模拟栈和队列相较于STL的好处在于速度快,虽然在实际编译的时候会有O2优化,使两者相差无几,但是在算法题中一般没有优化。 栈算法模板 // 栈定义为stk[N],tt表示栈顶,初始化为0intstk[N],tt=0;// 向栈顶插入一个数stk[++tt]=x;// 从栈顶弹出一个数tt--;// ...
【模板】单调栈,上面的题目和该题目返回的结果不一致,该题返回的时索引,上题返回的是数值 0人点赞 Algorithm 更多精彩内容,就在简书APP "小礼物走一走,来简书关注我" 赞赏支持还没有人赞赏,支持一下 白不摆一个想进入大厂的小白! 总资产4共写了2.1W字获得8个赞共3个粉丝 ...
单调栈(最大矩形面积)单调栈(最⼤矩形⾯积)单调栈求最⼤矩形的⼀类题:1.简单的模板题:直⽅图是由在公共基线处对齐的⼀系列矩形组成的多边形。矩形具有相等的宽度,但可以具有不同的⾼度。例如,图例左侧显⽰了由⾼度为2,1,4,5,1,3,3 通常,直⽅图⽤于表⽰离散分布,例如,⽂...
典型例题:求左边第一个比当前元素小的数 (模板,弄懂) 代码: #include<iostream> using namespace std; #include<stack> int main() { //定义单调栈st stack<int>st; //输入元素个数 int n; cin >> n; for (int i = 0; i < n; i++) ...
木板灌水问题(单调栈),题意:地上从左到右竖立着N块木板,从1到n依次编号,如下图所示。我们知道每块木板的高度,在第n块模板