AcWing 830. 单调栈

Posted qingyuyyyyy

tags:

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

https://www.acwing.com/problem/content/832/

#include <iostream>
using namespace std;
const int N = 100010;
int stk[N], tt;
int main() {
    int n;
    cin >> n;
    while (n -- ) {
        int x;
        scanf("%d", &x);
        while (tt && stk[tt] >= x) //当栈是不空的并且栈里的元素是大于当 前这个数字的,那么栈里的元素就不会被用到   
        tt -- ;
        if (!tt) printf("-1 ");   //如果都大于,说明没有,就输出-1 
        else printf("%d ", stk[tt]);//如果存在小于的,就输出 
        stk[ ++ tt] = x;//然后把x放进去 
    }
    return 0;
}

 

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

AcWing 830. 单调栈

830. 单调栈

AcWing基础算法课Level-2 第二讲 数据结构

830. 单调栈

AcWing 1904. 奶牛慢跑(单调栈)

AcWing - 131 - 直方图中最大的矩形 = 单调栈