⭐简单说两句⭐
作者:后端小知识
个人主页:后端小知识
🔎GZH:
后端小知识
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
题目: NC14893 栈和排序
考虑到直接复制题目,或者截屏的方式不是很方便阅读,我就把直接题目链接放下面!
题目传送门: NC14893 栈和排序
思路
:
维护一个后缀最大值数组,就比较方便求了,具体的我们直接看代码!
我们来看看成功AC的代码吧:
#include<bits/stdc++.h>
using namespace std;
const int N=1000010;
int n;
int maxn[N],a[N];
stack<int> st;
int main(){
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=n;i>=1;i--) maxn[i]=max(a[i],maxn[i+1]);//维护后缀最大值
for(int i=1;i<=n;i++){
st.push(a[i]);
while(!st.empty()&&st.top()>maxn[i+1]) {
cout<<st.top()<<" "; st.pop();
}
}
while(!st.empty()){//处理剩下的
cout<<st.top()<<" "; st.pop();
}
return 0;
}
【都看到这了,点点赞点点关注呗,爱你们】😚😚
结语
谢谢你的阅读
,由于作者水平有限,难免有不足之处,若读者发现问题,还请批评,在留言区留言或者私信告知,我一定会尽快修改的。若各位大佬有什么好的解法,或者有意义的解法都可以在评论区展示额,万分谢谢。
写作不易,望各位老板点点赞,加个关注!😘😘😘