1、题目描述
2、代码详解
import java.util.Stack;
class MinStack {
private Stack<Integer> dataStack; // 数据栈
private Stack<Integer> minStack; // 辅助栈,放入最小元素
/** initialize your data structure here. */
public MinStack() {
dataStack = new Stack<>();
minStack = new Stack<>();
}
public void push(int x) {
dataStack.push(x);
// 如果x小于等于minstack的栈顶
if (minStack.isEmpty() || minStack.peek() >= x) minStack.push(x);
}
public void pop() {
int x = dataStack.pop();
if(x == minStack.peek()) minStack.pop();
}
public int top() {
return dataStack.peek();
}
public int getMin() {
return minStack.peek();
}
}
https://www.bilibili.com/video/BV1jE411e7wJ?from=search&seid=8345138823063573011