• 155. 最小栈(leetcode简单题)


    设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。

    push(x) —— 将元素 x 推入栈中。
    pop() —— 删除栈顶的元素。
    top() —— 获取栈顶元素。
    getMin() —— 检索栈中的最小元素。

    示例:

    输入:
    ["MinStack","push","push","push","getMin","pop","top","getMin"]
    [[],[-2],[0],[-3],[],[],[],[]]

    输出:
    [null,null,null,null,-3,null,0,-2]

    解释:
    MinStack minStack = new MinStack();
    minStack.push(-2);
    minStack.push(0);
    minStack.push(-3);
    minStack.getMin(); --> 返回 -3.
    minStack.pop();
    minStack.top(); --> 返回 0.
    minStack.getMin(); --> 返回 -2.

    提示:

    pop、top 和 getMin 操作总是在 非空栈 上调用。

    思路:使用一个辅助最小栈;

    import java.util.Stack;
    
    class MinStack {
        Stack<Integer> s;
        Stack<Integer> minStack;
    
        /** initialize your data structure here. */
        public MinStack() {
            s = new Stack<>();
            s.push(0);
            minStack = new Stack<>();
            minStack.push(Integer.MAX_VALUE);
        }
        
        public void push(int x) {
            if(x<=minStack.peek()){
                minStack.push(x);
            }else{
                minStack.push(minStack.peek());
            }
            s.push(x);
        }
        
        public void pop() {
            s.pop();
            
            minStack.pop();
        
        }
        
        public int top() {
            return s.peek();
        }
        
        public int getMin() {
            return minStack.peek();
        }
    }
    
    /**
     * Your MinStack object will be instantiated and called as such:
     * MinStack obj = new MinStack();
     * obj.push(x);
     * obj.pop();
     * int param_3 = obj.top();
     * int param_4 = obj.getMin();
     */
    
  • 相关阅读:
    不可或缺 Windows Native (15)
    不可或缺 Windows Native (14)
    不可或缺 Windows Native (13)
    不可或缺 Windows Native (12)
    不可或缺 Windows Native (11)
    不可或缺 Windows Native (10)
    不可或缺 Windows Native (9)
    不可或缺 Windows Native (8)
    不可或缺 Windows Native (7)
    不可或缺 Windows Native (6)
  • 原文地址:https://www.cnblogs.com/ZCWang/p/12756209.html
Copyright © 2020-2023  润新知