zoukankan      html  css  js  c++  java
  • 牛客网 剑指offer JZ5 用两个栈实现队列

    描述

    用两个栈来实现一个队列,分别完成在队列尾部插入整数(push)和在队列头部删除整数(pop)的功能。 队列中的元素为int类型。保证操作合法,即保证pop操作时队列内已有元素。
     
    示例:
    输入:
    ["PSH1","PSH2","POP","POP"]
    返回:
    1,2
    解析:
    "PSH1":代表将1插入队列尾部
    "PSH2":代表将2插入队列尾部
    "POP“:代表删除一个元素,先进先出=>返回1
    "POP“:代表删除一个元素,先进先出=>返回2

    import java.util.Stack;
    
    public class Solution {
        Stack<Integer> stack1 = new Stack<Integer>();
        Stack<Integer> stack2 = new Stack<Integer>();
        
        public void push(int node) {
            stack1.push(node);
        }
        
        public int pop() {
            while (!stack2.isEmpty())
                return stack2.pop();
            while (!stack1.isEmpty())
                stack2.push(stack1.pop());
                return stack2.pop();
        }
    }

    插入的时候很简单

    弹出的时候有点复杂:

    先弹stack2,

    弹完以后,把stack1的全部押到stack2,然后弹出stack2第一个

  • 相关阅读:
    shiro注解,初始化资源和权限,会话管理
    shiro标签
    20个为前端开发者准备的文档和指南
    Canvas处理头像上传
    Chrome 实用调试技巧
    JS 代码编一个倒时器
    sql server优化
    在线图片压缩网站
    Request.QueryString
    C#网络爬虫
  • 原文地址:https://www.cnblogs.com/upstart/p/15027986.html
Copyright © 2011-2022 走看看