源码:
include <bits/stdc++.h>
using namespace std;
int b=0;
int main(void)
{
stack<int>stk; int n; cin>>n; int arr[n]; for(int i=0;i<n;i++) { cin>>arr[i]; } stk.push(arr[0]); for(int i=0;i<n-1;i++) { int a=0; for(int j=i+1;j<n;j++) { if(stk.top()>arr[j]) { a++; } } if(a==(n-1-i)) { int c=stk.top(); stk.pop(); b++; cout<< c <<" "; stk.push(arr[i+1]); }else { stk.push(arr[i+1]); } } b=stk.size(); //注意这个,我第一次没设置的时候,一直输出不对,发现,stk.size()会变化,是一个变化的值,所以下面的循环只能用当前的长度值; for(int i=0;i<b;i++) { int c=stk.top(); stk.pop(); cout<<c<<" "; } return 0;
}
最后,很简单这道题!