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

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.xdnf.cn/news/7658.html

相关文章:

  • 【华为OD- B卷 - 增强的strstr 100分(python、java、c++、js、c)】
  • 连接Redis数据库
  • 初识Linux · 数据链路层
  • PyTorch图像识别模型和图像分割模型体验
  • 【Java 反射的使用】
  • (T_T),不小心删掉RabbitMQ配置文件数据库及如何恢复
  • Python训练营---Day31
  • 大模型幻觉
  • CAN总线
  • mbed驱动st7789屏幕-硬件选择及连接(1)
  • TDengine 更多安全策略
  • (二十四)Java网络编程全面解析:从基础到实践
  • 基于python的花卉识别系统
  • Playwright+Next.js:实例演示服务器端 API 模拟新方法
  • 从私有化到容器云:iVX 研发基座的高校智慧校园部署运维全解析
  • 多头注意力机制和单注意力头多输出的区别
  • 大型商业综合体AI智能保洁管理系统:开启智能保洁新时代
  • 麒麟系统编译osg —— 扩展篇
  • 02 if...else,switch,do..while,continue,break
  • DevExpressWinForms-XtraMessageBox-定制和汉化
  • 【python进阶知识】Day 31 文件的规范拆分和写法
  • vLLM框架高效原因分析
  • IntentUri页面跳转
  • 常见的 API 及相关知识总结
  • 如何查看Python内置函数列表
  • 面试之MySQL慢查询优化干货分享
  • AT2659S低噪声放大器芯片:1.4-3.6V宽电压供电,集成50Ω匹配
  • springboot+vue实现服装商城系统(带用户协同过滤个性化推荐算法)
  • 使用SFunction获取属性名,减少嵌入硬编码
  • 初识Linux 进程:进程创建、终止与进程地址空间