前言
从名字上就听的出来,单调栈中存放的数据应该是有序的,所以单调栈也分为单调递增栈和单调递减栈。
单调递增栈:单调递增栈就是从栈底到栈顶数据是从大到小。
单调递减栈:单调递减栈就是从栈底到栈顶数据是从小到大。
提示:以下是本篇文章正文内容,下面案例可供参考
一、单调栈的实现
代码如下:
#include<bits/stdc++.h>
using namespace std;
const int N=100010;
int s[N],tt;
int n;
int main(){
cin>>n;
for(int i=0;i<n;i++)
{
int x;
cin>>x;
while(tt&&s[tt]>=x)tt--;
if(tt)cout<<s[tt]<<" ";
else cout<<"-1"<<" ";
s[++tt]=x;
}
return 0;
}