首页 > 代码库 > 剑指Offer-- 包含min函数的栈
剑指Offer-- 包含min函数的栈
定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。在该栈中,调用min、push、pop的时间复杂度都是o(1)
思路: 建一个辅助栈,将每次压入栈时的最小值保存进去。
写python过程中出了一些问题:其中尤其注意在使用列表时候,pop()函数的作用:用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。
# -*- coding:utf-8 -*- class Solution: res = [] helper = [] def push(self, node): self.res.append(node) if self.helper != []: if node < self.helper[-1]: # 若是当前值比里边的最小值还小,那么就压入辅助栈 self.helper.append(node) else: # 否则压入当前辅助栈的栈顶元素 self.helper.append(self.helper[-1]) if self.helper == []: self.helper.append(node) def pop(self): if self.res and self.helper: self.helper.pop() return self.res.pop() def top(self): # write code here if self.res: return self.res[-1] def min(self): # write code here if self.helper: return self.helper[-1]
剑指Offer-- 包含min函数的栈
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。