亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

劍指offer:包含min函數的棧

發布時間:2020-07-20 21:59:54 來源:網絡 閱讀:233 作者:Jayce_SYSU 欄目:編程語言

題目描述
定義棧的數據結構,請在該類型中實現一個能夠得到棧中所含最小元素的min函數(時間復雜度應為O(1))。

class Solution:
    """
    由于需要包含min函數且滿足棧的性質,那么我們可以增加一個保存輔助棧來保存最小值。
    假設我們設計兩個存儲棧,一個叫數據棧,一個叫最小棧。
    當數據棧有壓入操作的時候,最小棧也執行一個壓入操作,但是壓入的值是當前數據棧中的最小值;
    當數據棧有彈出操作的時候,最小棧也執行一個一樣的常規彈出操作
    """
    def __init__(self):
        self.min_stack = []
        self.data_stack = []

    def push(self, node):
        # 入棧的時候只需要壓入當前數據棧中的最小值,
        # 那么當出棧的時候如果數據棧彈出的是最小值,那么最小棧也彈出了最小值
        # 如果數據棧彈出的不是最小值,那么最小棧彈出之后全局最小值還保留在棧中。

        # 通過這樣設計,最小棧的棧頂永遠保存著全局的最小值,這樣我們就可以通過min函數獲取最小值
        self.data_stack.append(node)
        self.min_stack.append(min(self.min_stack[-1], node)
                              if self.min_stack else node)

    def pop(self):
        if self.data_stack:
            self.data_stack.pop(-1)
            self.min_stack.pop(-1)

    def top(self):
        if self.data_stack:
            return self.data_stack[-1]

    def min(self):
        if self.min_stack:
            return self.min_stack[-1]
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

吉水县| 定远县| 西畴县| 都匀市| 留坝县| 米脂县| 上杭县| 千阳县| 射阳县| 海南省| 新疆| 湘潭市| 华坪县| 漳平市| 监利县| 湖南省| 泾源县| 双鸭山市| 壶关县| 毕节市| 平顺县| 伊春市| 巨鹿县| 邯郸县| 高陵县| 廉江市| 抚顺县| 长阳| 丘北县| 南雄市| 新疆| 东乌珠穆沁旗| 濮阳县| 仙游县| 弥勒县| 四子王旗| 凤冈县| 大同县| 杨浦区| 张家界市| 乌鲁木齐市|