lhl
首页
python
leetcode
产品思想
软件测试
博客 (opens new window)
github (opens new window)
首页
python
leetcode
产品思想
软件测试
博客 (opens new window)
github (opens new window)
  • python

  • leetcode

    • 数组

    • 位运算

    • 动态规划

    • 链表

    • 栈

      • 20.有效的括号
      • 155.最小栈
    • 树

  • 软件测试

  • Git

  • linux

  • 产品

  • MySql

  • docker

  • leetcode
  • stack
2023-04-29

最小栈

https://leetcode-cn.com/problems/min-stack/ (opens new window) 需要注意的点 ** 思路:** ** 维护两个栈,一个保存当前值的最小值,一个保存当前值** ** 当推入/推出当前值时,推入/推出当前值的最小值** ** 要理解栈的原型** ** leetcode cn 的官方解释很清楚**

import math
class MinStack(object):
    '''
        思路:
        维护两个栈,一个保存当前值的最小值,一个保存当前值
        当推入/推出当前值时,推入/推出当前值的最小值
        要理解栈的原型
        leetcode cn 的官方解释很清楚
    '''

    # 维护一个最小值栈
    def __init__(self):
        self.list = []
        self.minlist = [math.inf]

    '''
        
    '''
    def push(self, val):
        """
        :type val: int
        :rtype: None
        """
        self.list.append(val)
        self.minlist.append(min(val, self.minlist[-1]))

    def pop(self):
        """
        :rtype: None
        """
        self.list.pop()
        self.minlist.pop()

    def top(self):
        """
        :rtype: int
        """
        return self.list[-1]

    def getMin(self):
        """
        :rtype: int
        """
        return self.minlist[-1]


# Your MinStack object will be instantiated and called as such:
# obj = MinStack()
# obj.push(val)
# obj.pop()
# param_3 = obj.top()
# param_4 = obj.getMin()
20.有效的括号
94.二叉树的中序遍历

← 20.有效的括号 94.二叉树的中序遍历→

最近更新
01
lhl learn notes
02
filter
06-09
03
decorator
06-09
更多文章>
Theme by Vdoing
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式