棧的最小元素
阿新 • • 發佈:2018-12-06
構建一個棧,使其有查詢最小元素的功能
資料棧+輔助棧
class MinStack { /** initialize your data structure here. */ private Stack<Integer> dataStack; private Stack<Integer> minStack; private int min; public MinStack() { dataStack=new Stack<>(); minStack=new Stack<>(); min=Integer.MAX_VALUE; } public void push(int x) { dataStack.add(x); min=Math.min(min,x); minStack.add(min); } public void pop() { dataStack.pop(); minStack.pop(); min=minStack.isEmpty()?Integer.MAX_VALUE:minStack.peek(); } public int top() { return dataStack.peek(); } public int getMin() { return minStack.peek(); } } /** * Your MinStack object will be instantiated and called as such: * MinStack obj = new MinStack(); * obj.push(x); * obj.pop(); * int param_3 = obj.top(); * int param_4 = obj.getMin(); */