$\huge \color{orange}{成仙之路->}$ $\huge \color{purple}{算法基础课题解}$
思路:
当 stk.top() >= x 时,stk.top() 就不会再被选到,就可以 stk.pop(),所以这是一个严格单调递增栈
完整代码
#include<bits/stdc++.h>
using namespace std;
const int N = 100010;
int n,x;
int skt[N],tt;
int main()
{
cin>>n;
while(n--)
{
cin>>x;
//找到第一个 stk[tt] < x
while(skt[tt]>=x) tt--;
cout<<(tt ? skt[tt] : -1)<<' ';
skt[++tt]=x;
}
return 0;
}