21包含min函数的栈python

来源:互联网 发布:数据库设计教程 pdf 编辑:程序博客网 时间:2024/05/18 03:13

题目:定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
思路:设置一个辅助栈来保存最小值,每次在原始栈压入元素的时候同时更新辅助栈

class Solution:    def __init__(self):        self.stack = []        self.min_stack = []    def push(self, node):        # write code here        self.stack.append(node) #如果新压入的值比最小值小,则向辅助栈压入新值,否则压入最小值        if self.min_stack == [] or node < self.min():            self.min_stack.append(node)        else:            temp = self.min()            self.min_stack.append(temp)    def pop(self):        # 只要不为空就删除原始栈和辅助栈的元素        if self.min_stack == [] or self.stack == []:            return None        self.min_stack.pop()        self.stack.pop()    def top(self):#返回栈顶        # write code here        return self.stack[-1]    def min(self):        # 返回当前最小值        return self.min_stack[-1]
原创粉丝点击