欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

劍指offer:包含min函數(shù)的棧

題目描述
定義棧的數(shù)據(jù)結(jié)構(gòu),請在該類型中實現(xiàn)一個能夠得到棧中所含最小元素的min函數(shù)(時間復(fù)雜度應(yīng)為O(1))。

創(chuàng)新互聯(lián)公司從2013年開始,先為上蔡等服務(wù)建站,上蔡等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為上蔡企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

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

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

        # 通過這樣設(shè)計,最小棧的棧頂永遠(yuǎn)保存著全局的最小值,這樣我們就可以通過min函數(shù)獲取最小值
        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]

網(wǎng)頁標(biāo)題:劍指offer:包含min函數(shù)的棧
本文URL:http://www.chinadenli.net/article0/gccjoo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管移動網(wǎng)站建設(shè)網(wǎng)站收錄網(wǎng)站導(dǎo)航網(wǎng)站建設(shè)全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)