• LeetCode-Implement Queue using Stacks


    Implement the following operations of a queue using stacks.

    • push(x) -- Push element x to the back of queue.
    • pop() -- Removes the element from in front of queue.
    • peek() -- Get the front element.
    • empty() -- Return whether the queue is empty.

    Notes:

      • You must use only standard operations of a stack -- which means only push to top, peek/pop from top, size, and is empty operations are valid.
      • Depending on your language, stack may not be supported natively. You may simulate a stack by using a list or deque (double-ended queue), as long as you use only standard operations of a stack.
      • You may assume that all operations are valid (for example, no pop or peek operations will be called on an empty queue).

    Analysis:

    Maintain a push stack and a pop stack. For pop(), if pop stack is empty, we move all elements in push stack into pop stack. After that, we can always pop until pop stack is empty.

    Solution:

    class MyQueue {
        Stack<Integer> pushQ = new Stack<Integer>();
        Stack<Integer> popQ = new Stack<Integer>();
        
        // Push element x to the back of queue.
        public void push(int x) {
            pushQ.push(x);
        }
    
        // Removes the element from in front of queue.
        public void pop() {
            peek();
            popQ.pop();
        }
    
        // Get the front element.
        public int peek() {
            if (popQ.isEmpty())
                while (!pushQ.empty()){
                    popQ.push(pushQ.pop());
                }
            return popQ.peek();
        }
    
        // Return whether the queue is empty.
        public boolean empty() {
            return popQ.empty() && pushQ.empty();
        }
    }
  • 相关阅读:
    flask数据库
    python 百万级别类实例实现节省内存
    python定义一种新类型的元组
    python使用临时文件
    open函数 文件设置缓冲
    词频统计,字典成绩排序
    列表数组集合解析
    2019蓝桥杯Java第十题大学生B组——最短路径思想
    项目企业信息图谱分析有感——数据分析
    需求分析有感
  • 原文地址:https://www.cnblogs.com/lishiblog/p/5870456.html
Copyright © 2020-2023  润新知