题解 | #栈和排序#
栈和排序
https://ac.nowcoder.com/acm/problem/14893
思路
Code
#include <bits/stdc++.h> using namespace std; const int N = 1e7+10; int a[N],f[N]; int stk[N]; int hh; int n; int main(){ cin>>n; for(int i=1;i<=n;i++) cin>>a[i]; for(int i=n;i>=1;i--) f[i]=max(f[i+1],a[i]); int t=0; for(int i=1;i<=n;i++){ stk[++hh]=a[i]; while(hh&&stk[hh]>f[i+1]) cout<<stk[hh]<<" \n"[t==n-1],hh--,t++; } return 0; }