面試題30:包含min函數的棧

題目:定義棧的數據結構,請在該類型中實現一個能夠得到棧最小元素的min函數。在該棧中,調用min、push、pop的時間複雜度都是O(1)

class Solution:
    def __init__(self):
        self.stack = [] # 數據棧
        self.minStack = [] # 輔助棧

    def push(self, node):
        self.stack.append(node)
        if self.minStack==[] or node<self.min():
            self.minStack.append(node)
        else:
            temp = self.min()
            self.minStack.append(temp)
    def pop(self):
        if self.stack or self.minStack==[]:
            return None
        self.stack.pop()
        self.minStack.pop()
    def top(self):
        return self.stack[-1]
    def min(self):
        return self.minStack[-1]
    

 

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