public class MinStack {
Stack<Integer> stack;
Stack<Integer> miniStack;
/** initialize your data structure here. */
public MinStack() {
stack = new Stack<>();
miniStack = new Stack<>();
}
public void push(int x) {
stack.push(x);
if (miniStack.isEmpty()) {
miniStack.push(x);
} else {
if (miniStack.peek() >= x) {
miniStack.push(x);
}
}
}
public void pop() {
if (stack.isEmpty()) {
return;
}
int num = stack.pop();
if (miniStack.peek() == num) {
miniStack.pop();
}
}
public int top() {
if (stack.isEmpty()) {
return 0;
}
return stack.peek();
}
public int getMin() {
if (miniStack.isEmpty()) {
return 0;
}
return miniStack.peek();
}
}
MinStack
最新推荐文章于 2022-03-27 10:44:20 发布