题解 | #栈#

栈和排序

https://ac.nowcoder.com/acm/problem/14893

见代码注释

#include<bits/stdc++.h>
using namespace std;
int a[1000100],r,n;
stack<int>sk;
int main(){
    cin>>n;r=n;
    for(int i=1;i<=n;i++){
        int x;cin>>x;//输入
        sk.push(x);//入栈
        a[x]++;//入栈标记
        while(sk.size()&&r<=sk.top()){//检查当前最大的是否入栈
            while(a[r])r--;//更新最右端
            cout<<sk.top()<<' ';//输出
            sk.pop();//出栈
        }      
    }
}
全部评论

相关推荐

10-07 23:57
已编辑
电子科技大学 Java
八街九陌:博士?客户端?开发?啊?
点赞 评论 收藏
分享
ricardo_lee:双非本走人工智能,只能说机会约等于无
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务