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

LeetCode 热题100-70 最小栈

最小栈

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

实现 MinStack 类:

  • MinStack() 初始化堆栈对象。
  • void push(int val) 将元素val推入堆栈。
  • void pop() 删除堆栈顶部的元素。
  • int top() 获取堆栈顶部的元素。
  • int getMin() 获取堆栈中的最小元素。

示例 1:

输入:
["MinStack","push","push","push","getMin","pop","top","getMin"]
[[],[-2],[0],[-3],[],[],[],[]]输出:
[null,null,null,null,-3,null,0,-2]解释:
MinStack minStack = new MinStack();
minStack.push(-2);
minStack.push(0);
minStack.push(-3);
minStack.getMin();   --> 返回 -3.
minStack.pop();
minStack.top();      --> 返回 0.
minStack.getMin();   --> 返回 -2.

提示:

  • -2e31 <= val <= 2e31 - 1
  • poptop 和 getMin 操作总是在 非空栈 上调用
  • pushpoptop, and getMin最多被调用 3 * 10e4 次

写个类里的函数

class MinStack:def __init__(self):self.stack = []self.minS = []def push(self, val: int) -> None:self.stack.append(val)if len(self.minS)!=0 and self.minS[-1]>val or len(self.minS) == 0:self.minS.append(val)# 这里原来  不明白他为什么不压入大的元素,这样不就不同步了吗?#...因为是栈呀!大的元素肯定先弹出去了def pop(self) -> None:popE = self.stack.pop()if popE == self.minS[-1]:self.minS.pop()def top(self) -> int:return self.stack[-1]def getMin(self) -> int:return self.minS[-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()

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • [数据库][oracle]ORACLE EXP/IMP的使用详解
  • MySQL数据类型-介绍
  • 服务器安装pytorch-阿里云-centos7
  • springboot启动很慢,加载xml时卡住 或者 {dataSource-1} inited卡住 或者 primary数据库配置错误,很久启动不起来
  • PHP + Redis 实现抽奖算法(ThinkPHP5)
  • 145. 利用 Redis Bitmap实践: 用户签到统计
  • 【ArcGIS Pro原理第一期】各种空间插值原理:GPI、LPI、IDW等
  • 七月刚入职字节跳动的测试开发面试题,附答案
  • 【全网最全】《2024高教社杯/国赛》 C题 思路+代码+文献 蒙特卡洛+遗传算法 一到三问 农作物的种植策略
  • Linux系统运行模式以及链接文件
  • 高级java每日一道面试题-2024年9月04日-前端篇-前端的框架分类有哪些?
  • Google Research 推出高效的Prompt Tuning方法
  • pointer-events: auto; 是一个 CSS 属性,
  • CSS基础:浮动(float)如何使用清楚以及代替方法
  • 使用CJson编写多个节点嵌套的程序代码
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • Apache Pulsar 2.1 重磅发布
  • Git初体验
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • JavaScript的使用你知道几种?(上)
  • JS数组方法汇总
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • overflow: hidden IE7无效
  • Puppeteer:浏览器控制器
  • select2 取值 遍历 设置默认值
  • SpiderData 2019年2月16日 DApp数据排行榜
  • Web Storage相关
  • 订阅Forge Viewer所有的事件
  • 软件开发学习的5大技巧,你知道吗?
  • 新版博客前端前瞻
  • 原创:新手布局福音!微信小程序使用flex的一些基础样式属性(一)
  • puppet连载22:define用法
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • $().each和$.each的区别
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (27)4.8 习题课
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第1节 (全局数据、栈和堆)
  • (Git) gitignore基础使用
  • (TOJ2804)Even? Odd?
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • (篇九)MySQL常用内置函数
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (图)IntelliTrace Tools 跟踪云端程序
  • (一)Linux+Windows下安装ffmpeg
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (转)为C# Windows服务添加安装程序
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • .NET CLR基本术语
  • .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞)
  • .NET单元测试