/*** 包含min函数的栈** 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))*/public class JZ020ContainMinStack {Stack<Integer> dataStack = new Stack<>();Stack<Integer> minStack = new Stack<>();public void push(int node) {dataStack.push(node);if (minStack.isEmpty()) {minStack.push(node);} else {int curMin = minStack.pop();minStack.push(curMin);minStack.push(Math.min(curMin, node));}}public void pop() {dataStack.pop();minStack.pop();}public int top() {int topEle = dataStack.pop();dataStack.push(topEle);return topEle;}public int min() {int minEle = minStack.pop();minStack.push(minEle);return minEle;}/*包含min函数的栈总结:1、题目抽象2、辅助栈的使用*/}