美文网首页ACM题库~
LeetCode 155. Min Stack

LeetCode 155. Min Stack

作者: 关玮琳linSir | 来源:发表于2017-10-23 12:30 被阅读8次

    Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.

    • push(x) -- Push element x onto stack.
    • pop() -- Removes the element on top of the stack.
    • top() -- Get the top element.
    • getMin() -- Retrieve the minimum element in the stack.
      Example:
    MinStack minStack = new MinStack();
    minStack.push(-2);
    minStack.push(0);
    minStack.push(-3);
    minStack.getMin();   --> Returns -3.
    minStack.pop();
    minStack.top();      --> Returns 0.
    minStack.getMin();   --> Returns -2.
    

    题意:自己实现一个栈

    java代码:

    Stack<Integer> stack = new Stack<>(); //declaration one stack here
        int min = Integer.MAX_VALUE;  //先声明min, no worry about stack.empty
    
        public void push(int x) {
            if (x <= min) {
                stack.push(min);
                min = x;         //单独记录下最小值是什么
            }
            stack.push(x);       //(看上面的解释)
        }
    
        public void pop() {
            int top = stack.pop();  //是赋值语句,也完成了pop操作
            if (top == min){
                min = stack.pop(); //之前每次出现min就push进两次,这里pop第二次
            }
        }
    
        public int top() {
            return stack.peek();  //import java.util.Stack
        }
    
        public int getMin() {
            return min;
        }
    
    

    相关文章

      网友评论

        本文标题:LeetCode 155. Min Stack

        本文链接:https://www.haomeiwen.com/subject/yvaouxtx.html