ID | Title | Difficulty | |
---|---|---|---|
Loading... |
155. Min Stack
Medium
LeetCode
Stack, Design
Problem
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.
Code
class MinStack {
Stack<Integer> stack;
int min;
public MinStack() {
this.stack = new Stack<>();
min = Integer.MAX_VALUE;
}
public void push(int x) {
if(x <= min){
// 把当前的最小值也放进去
// 这样之后就可以取出来再次作为最小值了
stack.push(min);
min = x;
}
stack.push(x);
}
public void pop() {
if(stack.pop() == min){
min = stack.pop();
}
}
public int top() {
return stack.peek();
}
public int getMin() {
return min;
}
}
按 <- 键看上一题!
154. Find Minimum in Rotated Sorted Array II
按 -> 键看下一题!
156. Binary Tree Upside Down