2021218 LeetCode刷题最小栈(难度 :单词规律)

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

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

 

import java.util.Deque;

class MinStack {
    private Deque<Integer> stack;
    private Deque<Integer> minStack;

    public MinStack() {
       stack = new LinkedList<Integer>();
       minStack = new LinkedList<Integer>();
     minStack.push(Integer.MAX_VALUE);
    }

    public void push(int val) {
       stack.push(val);
       minStack.push(Math.min(minStack.peek(),val));
    }

    public void pop() {
        stack.pop();
        minStack.pop();
    }

    public int top() {
       return stack.peek();
    }

    public int getMin() {
       return minStack.peek();
    }
}


/**
 * Your MinStack object will be instantiated and called as such:
 * MinStack obj = new MinStack();
 * obj.push(val);
 * obj.pop();
 * int param_3 = obj.top();
 * int param_4 = obj.getMin();
 */

  

执行结果:
通过

添加备注

执行用时:4 ms, 在所有 Java 提交中击败了99.44%的用户
内存消耗:40 MB, 在所有 Java 提交中击败了66.99%的用户
通过测试用例:31 / 31

 

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/min-stack
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

posted @ 2021-12-18 10:39  skystrivegao  阅读(29)  评论(0)    收藏  举报