【力扣100】【好题】155.最小栈

添加链接描述

python 复制代码
class MinStack:

    def __init__(self):
        self.stack=[]

    def push(self, val: int) -> None:
        if not self.stack:
            self.stack.append([val,val])
        else:
            self.stack.append([val,min(val,self.stack[-1][1])])


    def pop(self) -> None:
        self.stack.pop()

    def top(self) -> int:
        return self.stack[-1][0]

    def getMin(self) -> int:
        return self.stack[-1][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()

思路:

  1. 题目要求在常数时间内,所以在getmin()函数中使用sort或者min这种弱智的方法
  2. 我们把每个进入栈的元素定义为[ val , min ] ,让元素以这种方式入栈,每次只需要维护这个最小值就可以了
  3. python中用list定义栈的好处是,栈顶元素就是stack[-1]
相关推荐
参.商.13 分钟前
【Day48】46. 全排列
leetcode·golang
书到用时方恨少!14 分钟前
Python os 模块使用指南:系统交互的瑞士军刀
开发语言·python
不熬夜的熬润之16 分钟前
APCE-平均峰值相关能量
人工智能·算法·计算机视觉
yzx99101317 分钟前
实时数据流处理实战:从滑动窗口算法到Docker部署
算法·docker·容器
佩奇大王39 分钟前
P674 三羊献瑞
算法·深度优先·图论
带娃的IT创业者1 小时前
WeClaw_40_系统监控与日志体系:多层次日志架构与Trace追踪
java·开发语言·python·架构·系统监控·日志系统·链路追踪
发疯幼稚鬼1 小时前
大整数乘法运算
c语言·算法
亓才孓1 小时前
【提示词五要素】
python·ai·prompt
财经资讯数据_灵砚智能1 小时前
全球财经资讯日报(夜间-次晨)2026年3月28日
大数据·人工智能·python·语言模型·ai编程
水哥ansys2 小时前
Pyansys-PyMAPDL基本语法01-APDL原生命令流改写格式
python·二次开发·水哥ansys·pyansys·apdl