单调栈

Posted 033000-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单调栈相关的知识,希望对你有一定的参考价值。

基于递推,写起来更快

for(int i=1;i<=n;i++)
    scanf("%I64d",&a[i]),l[i]=r[i]=i;
a[0]=0;
for(int i=2;i<=n;i++){
    int now=i;
    while(now>1&&a[i]<=a[now-1]) now=l[now-1];
    l[i]=now;
}
for(int i=n-1;i;i--){
    int now=i;
    while(now<n&&a[i]<=a[now+1]) now=r[now+1];
    r[i]=now;
}

  

以上是关于单调栈的主要内容,如果未能解决你的问题,请参考以下文章

线性表--单调栈

线性表--单调栈

LeetCode- 柱状图中最大的矩形(单调栈)

HDU 6957 Maximal submatrix(悬线法 || 优先队列 || 单调栈 )

单调队列与单调栈作用

51nod1102(单调栈/预处理)