MinStack minStack = new MinStack(); 
时间: 2023-05-21 08:02:55 浏览: 33
这是一个关于数据结构的问题,MinStack 是一个栈,它可以在常数时间内获取栈中的最小值。这个问题需要使用 Java 编程语言来实现。以下是一个示例代码:
```
class MinStack {
private Stack<Integer> stack;
private Stack<Integer> minStack;
public MinStack() {
stack = new Stack<>();
minStack = new Stack<>();
}
public void push(int x) {
stack.push(x);
if (minStack.isEmpty() || x <= minStack.peek()) {
minStack.push(x);
}
}
public void pop() {
if (stack.peek().equals(minStack.peek())) {
minStack.pop();
}
stack.pop();
}
public int top() {
return stack.peek();
}
public int getMin() {
return minStack.peek();
}
}
```
这个 MinStack 类有 push、pop、top 和 getMin 四个方法,它们的时间复杂度都是 O(1)。其中,push 方法会将元素 x 压入栈中,并且如果 x 是当前栈中的最小值,就将它压入 minStack 中;pop 方法会将栈顶元素弹出,并且如果栈顶元素是当前最小值,就将它从 minStack 中弹出;top 方法返回栈顶元素;getMin 方法返回当前栈中的最小值。
相关推荐















