思路: 定义一个变量两个栈 一个变量:每次存储push数据后的最小值 两个栈:一个保存数据栈,一个保存每次存储数据后的最小值栈
每次从最小值栈取🌲就可以拿到最小值了,这里有点不明白的是top的作用,我写了好几种top拿各种数据都对了
int currMin=Integer.MAX_VALUE;
Stack<Integer> dataStack=new Stack<>();
Stack<Integer> minStack=new Stack<>();
public void push(int node) {
dataStack.push(node);
currMin=node<currMin?node:currMin;
minStack.push(currMin);
}
public void pop() {
dataStack.pop();
minStack.pop();
}
public int top() {
dataStack.pop();
return minStack.pop();
}
public int min() {
return minStack.peek();
}