zoukankan      html  css  js  c++  java
  • 剑指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]
  • 相关阅读:
    python遍历字典元素
    Asp.net网站优化【转】
    三、HTTP协议
    二、 OSI模型的实现TCP 、IP
    一、OSI模型
    JVM原理:4 运行期优化
    JS:jquery插件表格单元格合并.
    28-语言入门-28-1的个数
    27-语言入门-27-成绩转换
    26-语言入门-26-兄弟郊游问题
  • 原文地址:https://www.cnblogs.com/simplepaul/p/7127332.html
Copyright © 2011-2022 走看看