此题用一个辅助栈就可以实现了
在往栈中压入数据时,data栈正常添加,min栈,若新数据小于当前栈顶元素,则压入新数据;若新数据小于当前栈顶元素,则再压入一个当前栈顶元素。
import java.util.Stack;
public class Solution {
private Stack<Integer> stack = new Stack<>();
private Stack<Integer> minstack = new Stack<>();
public void push(int node) {
if(stack.isEmpty()){
stack.push(node);
minstack.push(node);
return;
}
int top = minstack.peek();
if(node>top){
stack.push(node);
minstack.push(top);
}else{
stack.push(node);
minstack.push(node);
}
}
public void pop() {
stack.pop();
minstack.pop();
}
public int top() {
return stack.peek();
}
public int min() {
return minstack.peek();
}
}