NC14893 栈和排序

Posted cq.tiancx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NC14893 栈和排序相关的知识,希望对你有一定的参考价值。

题目: 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;


谢谢你的阅读,由于作者水平有限,难免有不足之处,若读者发现问题,还请批评,在留言区留言或者私信告知,我一定会尽快修改的。若各位大佬有什么好的解法,或者有意义的解法都可以在评论区展示额,万分谢谢。
写作不易,望各位老板点点赞,加个关注!

以上是关于NC14893 栈和排序的主要内容,如果未能解决你的问题,请参考以下文章

930. 和相同的二元子数组/238. 除自身以外数组的乘积/1262. 可被三整除的最大和/NC90 设计getMin功能的栈/NC67连续子数组的最大和/NC115 栈和排序

Codeforces1548 C. The Three Little Pigs(组合数学+dp)

codevs1170 双栈排序

LeetCode 451. 根据字符出现频率排序 / 645. 错误的集合 / 726. 原子的数量 / NC52 括号序列 / NC102 最近公共祖先 / NC78 反转链表

栈和队列:用一个栈实现另一个栈的排序

栈和队列的常见题型