题解 | #包含min函数的栈#
包含min函数的栈
https://www.nowcoder.com/practice/4c776177d2c04c2494f2555c9fcc1e49
import java.util.*;
import java.util.Stack;
public class Solution {
Stack<Integer> stack = new Stack<Integer>();
Stack<Integer> montonicityStack = new Stack<Integer>();
public void push(int node) {
if(montonicityStack.isEmpty()||montonicityStack.peek()>=node){
stack.push(node);
montonicityStack.push(node);
}
stack.push(node);
}
public void pop() {
int min = montonicityStack.peek();
int temp = stack.peek();
if(min==temp){
stack.pop();
montonicityStack.pop();
}
stack.pop();
}
public int top() {
return stack.peek();
}
public int min() {
return montonicityStack.peek();
}
}
通过对传入的node值比较,使得单调栈的栈顶的值一直是当前栈的最小值

