zoukankan      html  css  js  c++  java
  • 两个栈实现队列,开始做错了 —— 剑指Offer

    开始大意了,这道题目居然做错了:

    https://www.nowcoder.net/practice/54275ddae22f475981afa2244dd448c6?tpId=13&tqId=11158&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

    后来第二次,做对了:

    题目描述

    用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
     
     
    实现如下:
    pop2是原来做错的方法,pop是改正的做法。
     
    class Solution
    {
    public:
        void push(int node) {
            stack1.push(node);
        }
        
        int pop() {
            if (stack2.empty()) {
                while(!stack1.empty()) {
                       int tmp = stack1.top();
                    stack1.pop();
                    stack2.push(tmp);
                }
            }
            int ret = stack2.top();
            stack2.pop();
            return ret;
        }
    
        int pop2() {
            while(!stack1.empty()) {
                int tmp = stack1.top();
                stack1.pop();
                stack2.push(tmp);
            }
            int ret = stack2.top();
            stack2.pop();
            return ret;
        }
    
    private:
        stack<int> stack1;
        stack<int> stack2;
    };
     
  • 相关阅读:
    算法中时间复杂度概括——o(1)、o(n)、o(logn)、o(nlogn)
    Docker笔记
    struts框架
    引包问题
    官网下载
    WebService
    答辩问题整理
    小程序转发功能的实现
    小程序自定义组件及传值
    vue 点击下拉框
  • 原文地址:https://www.cnblogs.com/charlesblc/p/8430449.html
Copyright © 2011-2022 走看看