题目描述
设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。
push(x) —— 将元素 x 推入栈中。
pop() —— 删除栈顶的元素。
top() —— 获取栈顶元素。
getMin() —— 检索栈中的最小元素。
lc练习
J - 30】包含min函数的栈
实现
- 辅助栈
class MinStack {
/** initialize your data structure here. */
Stack<Integer> A, B;
public MinStack() {
A = new Stack<>();
B = new Stack<>();
}
public void push(int val) {
A.push(val);
if (B.isEmpty() || B.peek() >= val) {
B.push(val);
}
}
public void pop() {
if (A.pop().equals(B.peek())) {
B.pop();
}
}
public int top() {
return A.peek();
}
public int getMin() {
return B.peek();
}
}