码迷,mamicode.com
首页 > 其他好文 > 详细

剑指Offer-- 包含min函数的栈

时间:2017-07-06 18:48:20      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:res   bsp   class   coding   包含min函数的栈   utf-8   移除   结构   并且   

定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的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函数的栈

标签:res   bsp   class   coding   包含min函数的栈   utf-8   移除   结构   并且   

原文地址:http://www.cnblogs.com/simplepaul/p/7127332.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!