题目描述
给你一组数据让你找出来每个数左边小于他的且离他最近的数
这题使用单调栈来解决 顾名思义 单调栈即栈里面的元素是单调的要么单调递增要么单调递减
这题就是单增的典型题
include[HTML_REMOVED]
using namespace std;
const int n=1e5+10;
int stk[n],tt;//stk数组就是我们维护的栈
int main(){
int m;
cin>>m;
for(int i=0;i[HTML_REMOVED]>x;
//我们知道如果stk[i]>stk[j]&&i[HTML_REMOVED]=x)tt–;
if(tt)cout<<stk[tt]<<’ ‘;
else cout<<-1<<’ ‘;
stk[++tt]=x;
}
return 0;
}