题目概述(简单难度)
题目链接
点我进入链接
思路与代码
思路展现
这道题目与之前实现一个最小栈这道题目实际上是一个题目,所以大家可以直接看这篇博客即可:
戳我戳我
代码示例
class MinStack {
//定义两个栈,stack和minStack
private Stack<Integer> stack = new Stack<>();
private Stack<Integer> minStack = new Stack<>();
public MinStack() {
}
public void push(int val) {
stack.push(val);
if(minStack.isEmpty()) {
//先将第一个元素放入stack2当中
minStack.push(val);
}else {
//注意这块需要写等于号
if(val <= minStack.peek()) {
minStack.push(val);
}
}
}
public void pop() {
int x = stack.pop();
if(x == minStack.peek()) {
minStack.pop();
}
}
public int top() {
return stack.peek();
}
public int min() {
return minStack.peek();
}
}