Easy java solution,beats 100% java submissions.push O(1),pop() and peek() O(1) on average


  • 0
    F
    Stack<Integer> stack1=new Stack<Integer>();
    Stack<Integer> stack2=new Stack<Integer>();
    // Push element x to the back of queue.
    public void push(int x) {
        stack1.push(x);
    }
    // Removes the element from in front of queue.
    public void pop() {
        if(stack2.isEmpty()){
            while(!stack1.isEmpty()){
                stack2.add(stack1.pop());
            }
        }
        stack2.pop();
    }
    // Get the front element.
    public int peek() {
        if(stack2.isEmpty()){
            while(!stack1.isEmpty()){
                stack2.add(stack1.pop());
            }
        }
        return stack2.peek();
    }
    // Return whether the queue is empty.
    public boolean empty() {
        return stack1.isEmpty()&&stack2.isEmpty();
    }

  • 0
    I

    @futurehau though stack.add() have better performance, but i still think using stack.push() is more like implementing queue using STACKs instead of LISTs


Log in to reply
 

Looks like your connection to LeetCode Discuss was lost, please wait while we try to reconnect.