题解 | #用一个栈实现另一个栈的排序#

用一个栈实现另一个栈的排序

http://www.nowcoder.com/practice/ff8cba64e7894c5582deafa54cca8ff2

#include<bits/stdc++.h>
using namespace std;
stack<int> S1,S2;
int main(){
    int N;
    cin>>N;
    for(int i=0;i<N;i++){
        int x;
        cin>>x;
        while(!S1.empty()&&x<S1.top()){//当栈1不为空且x小于栈顶元素时
            S2.push(S1.top());
            S1.pop();
        }
        S1.push(x);
        while(!S2.empty()){
            S1.push(S2.top());
            S2.pop();
        }
    }
    while(!S1.empty()){
        cout<<S1.top()<<" ";
        S1.pop();
    }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 16:15
你知道对于一个平常不接电话,从来不发语音,只打字交流的人来说电话面有多恐怖吗....刚刚亲眼目睹了舍友电话面...她甚至还在吃饭...就这么水灵灵的打过来开始问了...感觉如果是面对面我真的会紧张到跪下来给面试官磕一个...
一只ikun:额,其实没那么恐怖,最难迈开的是第一步,相信我,你面完第一次后面就不怕了。第一次面试我还想着找个自习室面试,到后面我打着游戏突然来电话我就直接面试了
点赞 评论 收藏
分享
05-22 12:44
已编辑
门头沟学院 golang
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务