快重傳與快恢復
阿新 • • 發佈:2021-11-29
設計一個支援 push ,pop ,top 操作,並能在常數時間內檢索到最小元素的棧。
push(x) —— 將元素 x 推入棧中。
pop()—— 刪除棧頂的元素。
top()—— 獲取棧頂元素。
getMin() —— 檢索棧中的最小元素。
來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/min-stack
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。
心之所向,素履以往 生如逆旅,一葦以航import java.util.Stack; class MinStack { private Stack<Integer> stack; private Stack<Integer> minStack; public MinStack() { this.stack = new Stack<>(); this.minStack = new Stack<>(); } public void push(int val) { stack.push(val); if (minStack.isEmpty() || minStack.peek() >= val) { minStack.push(val); } } public void pop() { if (!stack.isEmpty()) { Integer pop = stack.pop(); if (minStack.peek().equals(pop)) { minStack.pop(); } } } public int top() { return stack.peek(); } public int getMin() { return minStack.peek(); } } /** * Your MinStack object will be instantiated and called as such: * MinStack obj = new MinStack(); * obj.push(val); * obj.pop(); * int param_3 = obj.top(); * int param_4 = obj.getMin(); */