当前位置: 首页 > news >正文

python-leetcode 69.最小栈

题目:

设计一个支持push,pop,top,操作,并能在常数时间内检索到最小元素的栈。


辅助栈法:

1:使用两个栈,一个主栈用于存储所有元素,另一个辅助栈用于存储当前元素的最小值

2: 每次push时,将元素压入主栈,同时比较当前元素与辅助栈顶元素,将较小者压入辅助栈

3:每次pop时,同时从主栈和辅助栈弹出元素

4:getmin,直接返回辅助栈最小的栈顶元素

class MinStack(object):def __init__(self):self.stack=[]self.min_stack=[]def push(self, val):""":type val: int:rtype: None"""self.stack.append(val)if not self.min_stack or val <=self.min_stack[-1]:self.min_stack.append(val)def pop(self):""":rtype: None"""if self.stack:top_val=self.stack.pop()if top_val==self.min_stack[-1]:self.min_stack.pop()def top(self):""":rtype: int"""if self.stack:return self.stack[-1]def getMin(self):""":rtype: int"""if self.min_stack:return self.min_stack[-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()

http://www.dtcms.com/a/203235.html

相关文章:

  • YOLO中model.predict方法返回内容Results详解
  • WSL虚拟机整体迁移教程(如何将WSL从C盘迁移到其他盘)
  • 物流项目第四期(运费模板列表实现)
  • 战略游戏--树形dp
  • 《初入苍穹:大一新手的编程成长之旅》
  • ACS ANM突破:微波一步法合成多孔吸波材料——焦耳加热技术如何赋能材料创新?
  • JAVASE查漏补缺
  • 无人机精准降落与避障模块技术解析
  • Java 01简单集合
  • HarmonyOS5云服务技术分享--ArkTS开发函数
  • 【深入理解索引扩展—1】提升智能检索系统召回质量的3大利器
  • 软考软件测评师——系统安全设计(防火墙技术)
  • SpringBoot(三)--- 数据库基础
  • vitepress项目添加百度统计或者google统计方式
  • 星闪开发之buttondemo烧录后无效果思路
  • 初识Linux 进程:进程创建、终止与进程地址空间
  • 软考软件评测师——基于风险的测试技术
  • protobuf原理和使用
  • 网络基础知识
  • vue2实现【瀑布流布局】
  • 推一帧,通一气:跨平台RTMP推流的内家功夫
  • Mysql面经
  • SpringBoot3+Vue3(1)-后端 请求头校验,jwt退出登录,mybaits实现数据库用户校验
  • SAGE:基于SAM进行二级蒸馏的多模态图像融合新方法,CVPR2025
  • 如何处理 collation 导致的索引失效 | OceanBase SQL调优实践
  • 信奥赛-刷题笔记-栈篇-T3-P4387验证栈序列0520
  • 13 分钟讲解所有知名 Python 库/模块
  • Linux探秘:驾驭开源,解锁高效能——基础指令
  • 数据仓库是什么?常见问题解答
  • 彭博社聚焦Coinbase数据泄露,CertiK联创顾荣辉警示私钥风险与物理攻击