#yyds干货盘点# LeetCode程序员面试金典:栈的最小

题目:

请设计一个栈,除了常规栈支持的pop与push函数以外,还支持min函数,该函数返回栈元素中的最小值。执行push、pop和min操作的时间复杂度必须为O(1)。

示例:

MinStack minStack = new MinStack();

minStack.push(-2);

minStack.push(0);

minStack.push(-3);

minStack.getMin(); –> 返回 -3.

minStack.pop();

minStack.top(); –> 返回 0.

minStack.getMin(); –> 返回 -2.

代码实现:

class MinStack { Deque<Integer> xStack; Deque<Integer> minStack; public MinStack() { xStack = new LinkedList<Integer>(); minStack = new LinkedList<Integer>(); minStack.push(Integer.MAX_VALUE); } public void push(int x) { xStack.push(x); minStack.push(Math.min(minStack.peek(), x)); } public void pop() { xStack.pop(); minStack.pop(); } public int top() { return xStack.peek(); } public int getMin() { return minStack.peek(); }} 观今宜鉴古,无古不成今。

#yyds干货盘点# LeetCode程序员面试金典:栈的最小

相关文章:

你感兴趣的文章:

标签云: