题目
定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。
题解
辅助栈记录当前最小值。
代码
import java.util.Stack; public class Main { private static Stack<Integer> s=new Stack<>();// private static Stack<Integer> minS=new Stack<>(); public static void main(String[] args) { StackWithMin s=new StackWithMin(); s.push(1); s.push(2); s.pop(); s.push(5); s.push(4); System.out.print(s.min()); } public static void push(int node) { s.push(node); if(minS.empty()||node<minS.peek()) {// minS.push(node); } else { minS.push(minS.peek()); } } public static void pop() { s.pop(); minS.pop(); } public static int top() { return s.peek(); } public static int min() { return minS.peek(); } }
来源:https://www.cnblogs.com/coding-gaga/p/11155709.html