题解 | 栈和排序
栈和排序
https://www.nowcoder.com/practice/b10a7ac681e9429e89a6a510e5799647
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
vector<int> arr(n);
for(int i=0;i<n;i++){
cin>>arr[i];
}
int max_1=0;
int num=1;
stack<int> zhan;
for(int i=0;i<n;i++){
if(num>=max_1){
max_1=*max_element(arr.begin()+i,arr.end());
while(num>max_1){
cout<<zhan.top()<<" ";
zhan.pop();
num=zhan.top();
}
}if(max_1>num){
zhan.push(arr[i]);
num=arr[i];
}
}
for(int i=zhan.size();i>0;i--){
cout<<zhan.top()<<" ";
zhan.pop();
}
return 0;
}
查看8道真题和解析