JZ20-包含min函数的栈
包含min函数的栈
https://www.nowcoder.com/practice/4c776177d2c04c2494f2555c9fcc1e49?tpId=13&tags=&title=&diffculty=0&judgeStatus=0&rp=1&tab=answerKey
class Solution {
Stack<Integer> normal = new Stack<>();
Stack<Integer> min = new Stack<>();
public void push(int node) {
normal.push(node);
if(min.isEmpty()){ //防止22行栈为空。
min.push(node);
}
if(node<= min.peek()){ //如果插入的是更小的元素,就直接压入
min.push(node);
}else{
min.push(min.peek()); //如果大于当前最小元素,直接把最小元素覆盖一次压入。。。为了保持同步
}
}
public void pop() {
normal.pop();
min.pop(); //防止主栈中没有此元素了,min中还存在
}
public int top() {
return normal.peek();
}
public int min() {
return min.peek();
}
} 