《劍指 offer》 學習20之包含 min 函數的棧

題目描述
定義棧的數據結構,請在該類型中實現一個能夠得到棧中所含最小元素的 min 函數(時間複雜度應爲O(1))。
注意:保證測試中不會當棧爲空的時候,對棧調用pop()或者min()或者top()方法。

題目鏈接:牛客網

解題思路

import java.util.Stack;

public class Solution {
    private Stack<Integer> dataStack = new Stack();
    private Stack<Integer> minStack = new Stack();
    
    public void push(int node) {
        dataStack.push(node);
        minStack.push(minStack.isEmpty()?node:Math.min(minStack.peek(),node));
    }
    
    public void pop() {
        dataStack.pop();
        minStack.pop();
    }
    
    public int top() {
        return dataStack.peek();
    }
    
    public int min() {
        return minStack.peek();
    }
}

測試結果

image.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章