美文网首页
16.单调栈

16.单调栈

作者: Tsukinousag | 来源:发表于2020-02-22 21:19 被阅读0次

原题链接

模拟栈

#include<iostream>

using namespace std;

const int N=1e6+10;

int st[N];

int main()
{
    int n,t=0;
    scanf("%d",&n);
    while(n--)
    {
        string s;
        cin>>s;
        if(s=="push")
        {
            int x;
            cin>>x;
            st[++t]=x;
            
        }
        else if(s=="pop")
        {
            t--;
        }
        else if(s=="empty")
        {
            if(t==0)
                printf("YES\n");
            else
                printf("NO\n");
        }
        else if(s=="query")
        {
            cout<<st[t]<<endl;
        }
    }
    return 0;
}

原题链接

原理:two points

for(int i=0;i<n;i++)
{
  for(int j=i-1;j>=0;j--)
  {
//遇到第一个小于i处的数就返回
  }
}

采用单调栈降低时间复杂度
每次都在找离着自己最近的最小的数,那么我们不得不思考,是不是要用到后进先出的栈

当ax>=ay且x<y时,ax必然不符合,不需考虑加入栈中,所以栈中元素最终生成一个单调递增的序列

int n;
int stk[MAX];
int tt=0;
int main()
{
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        int x;
        scanf("%d",&x);
        while(tt&&stk[tt]>=x)//栈顶非空,栈顶元素大于要插入的数
            tt--;
        if(tt)
            cout<<stk[tt]<<" ";
        else
            cout<<"-1"<<" ";
        stk[++tt]=x;//将此元素压入
    }
    return 0;
}

相关文章

  • 16.单调栈

    原题链接 原理:two points 采用单调栈降低时间复杂度每次都在找离着自己最近的最小的数,那么我们不得不思考...

  • 单调栈和应用实践

    什么是单调栈 单调栈的定义:单调栈即满足单调性的栈结构。与单调队列相比,其只在一端进行进出。 如何使用单调栈 单调...

  • 1.单调栈

    一、单调栈定义 单调栈(monotone-stack)是指栈内元素(栈底到栈顶)都是(严格)单调递增或者单调递减的...

  • 单调栈 2020-06-12(未经允许,禁止转载)

    1.单调栈 指栈内元素保持单调性的栈结构,分为单调增栈(栈底到栈顶元素递增)和单调减栈(栈底到栈顶元素递减) 2....

  • LeetCode刷题指北----单调栈

    1.什么是单调栈?有什么好处? 定义: 单调栈就是栈内元素递增或者单调递减的栈,并且只能在栈顶操作。单调栈的维护是...

  • C语言之单调栈

    单调栈 What 单调栈也是栈的一种,满足先进后出的原则,另外,单调栈中的元素是有序的,分为两种 单调递增栈:单调...

  • 腾讯笔试--逛街

    主要的知识点是:单调栈,该题牢牢记得:栈中记录当前楼能看到的元素 单调栈是单调递增栈,栈顶是最小值单调栈存的是能看...

  • 题解——单调栈

    单调栈题解 单调栈结构 牛客链接 方法:单调栈 算法 这里维护一个单调递增栈,可以找到比当前元素要小的元约定:当前...

  • 单调栈

    leetcode - 42. 接雨水单调栈即元素严格单调递增或单调递减的栈,只需要在元素入栈的时候保持栈的单调性即...

  • Java版算法模版总结(2)

    本次233酱介绍下单调栈、单调队列、并查集、KMP算法,欢迎交流指正~ 单调栈 「单调栈」首先是一种基于栈的数据结...

网友评论

      本文标题:16.单调栈

      本文链接:https://www.haomeiwen.com/subject/tferqhtx.html