当前位置: 首页 > 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()

相关文章:

  • YOLO中model.predict方法返回内容Results详解
  • WSL虚拟机整体迁移教程(如何将WSL从C盘迁移到其他盘)
  • 物流项目第四期(运费模板列表实现)
  • 战略游戏--树形dp
  • 《初入苍穹:大一新手的编程成长之旅》
  • ACS ANM突破:微波一步法合成多孔吸波材料——焦耳加热技术如何赋能材料创新?
  • JAVASE查漏补缺
  • 无人机精准降落与避障模块技术解析
  • Java 01简单集合
  • HarmonyOS5云服务技术分享--ArkTS开发函数
  • 【深入理解索引扩展—1】提升智能检索系统召回质量的3大利器
  • 软考软件测评师——系统安全设计(防火墙技术)
  • SpringBoot(三)--- 数据库基础
  • vitepress项目添加百度统计或者google统计方式
  • 星闪开发之buttondemo烧录后无效果思路
  • 初识Linux 进程:进程创建、终止与进程地址空间
  • 软考软件评测师——基于风险的测试技术
  • protobuf原理和使用
  • 网络基础知识
  • vue2实现【瀑布流布局】
  • 中国船舶:手持订单已排期至2029年,吸收合并中国重工正在推进中
  • 姜再冬会见巴基斯坦空军参谋长:中方欢迎并支持巴印通过对话妥善处理分歧
  • 福州市委副书记、福州新区党工委书记陈云水转任三明市政协党组书记
  • 广东7月起施行:不得以任何方式强制购买中小学校服或捆绑销售
  • 热点问答:特朗普与俄乌总统分别通话,他们谈了什么
  • 上海将完善隔代照料支持措施:建设老幼共享设施、提高科学育儿指导力度