[劍指offer] --21.包含min函式的棧
阿新 • • 發佈:2018-11-15
題目描述
定義棧的資料結構,請在該型別中實現一個能夠得到棧中所含最小元素的min函式(時間複雜度應為O(1))。
import java.util.Stack; public class Solution { public void push(int node) { } public void pop() { } public int top() { } public int min() { } }
解決思路
- 利用一個輔助棧來儲存最小的數,每次比較存入最小值,最後棧頂就是最小的數
Stack<Integer> stack = new Stack<>(); Stack<Integer> min = new Stack<>(); public void push(int node) { stack.push(node); if (min.isEmpty()||node<min.peek()){ min.push(node); } else { min.push(min.peek()); } } public void pop() { stack.pop(); min.pop(); } public int top() { return stack.peek(); } public int min() { return min.peek(); }