#include<iostream>
using namespace std;
typedef long long ll;
const int N = 1e6 + 10;
int n;
int st[N], tt;
int main() {
cin >> n;
for (int i = 1; i <= n; i++) {
int x; cin >> x;
//为了保证栈顶元素小于输入的值,只需要写程序时将<取反为>=就行
while (tt && st[tt] >= x) tt--;
if (tt) cout << st[tt] << " ";
else cout << -1 << " ";
st[++tt] = x;
}
return 0;
}
模板——单调栈
最新推荐文章于 2024-07-08 15:13:29 发布