Python包含min函数的栈

本文阅读 1 分钟
首页 Python笔记 正文

引入两个栈,一个栈每次push实际的数字,另一个minStack,如果push的数字小于minStack栈顶的数字,push新的数字,繁殖,把栈顶的数字再压入一遍。

'''
定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
'''

# -*- coding:utf-8 -*-
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.minStack.pop()
        self.stack.pop()

    def top(self):
        return self.stack[-1]
    def min(self):
        return self.minStack[-1]

S = Solution()
S.push(3)
S.push(4)
S.push(2)
S.push(1)
print(S.min())
S.pop()
print(S.min())
S.pop()
print(S.min())
解压密码: detechn或detechn.com

免责声明

本站所有资源出自互联网收集整理,本站不参与制作,如果侵犯了您的合法权益,请联系本站我们会及时删除。

本站发布资源来源于互联网,可能存在水印或者引流等信息,请用户自行鉴别,做一个有主见和判断力的用户。

本站资源仅供研究、学习交流之用,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担。

Python顺时针打印矩阵
« 上一篇 01-21
Python栈的压入、弹出序列
下一篇 » 01-21

发表评论

惪特博客
  • 文章总数:
    18474 篇
  • 评论总数:
    53170 条
  • 标签总数:
    8841 个
  • 总浏览量:
    19581279 次
  • 最后更新:
    10月12日

最多点赞

随便看看

标签TAG