LeetCode Hot100 155.最小栈

题目:        

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

实现 MinStack 类:

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

方法:用一个变量保存最小值,当有更小的值来的时候,我们只需要把之前的最小值入栈,当前更小的值再入栈即可。当这个最小值要出栈的时候,下一个值便是之前的最小值了。

代码

class MinStack {int min = Integer.MAX_VALUE;Stack<Integer> stack;public MinStack() {stack = new Stack<Integer>();}public void push(int val) {// 当前值更小if (val <= min) {// 将之前的最小值保存stack.push(min);// 更新最小值min = val;}stack.push(val);}public void pop() {// 如果弹出的值是最小值,那么将下一个元素更新为最小值if (stack.pop() == min) {min = stack.pop();  // 关键,连退两个}}public int top() {return stack.peek();}public int getMin() {return min;}
}/*** Your MinStack object will be instantiated and called as such:* MinStack obj = new MinStack();* obj.push(val);* obj.pop();* int param_3 = obj.top();* int param_4 = obj.getMin();*/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/177418.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PTA:猜帽子游戏 ,C语言

题目 宝宝们在一起玩一个猜帽子游戏。每人头上被扣了一顶帽子&#xff0c;有的是黑色的&#xff0c;有的是黄色的。每个人可以看到别人头上的帽子&#xff0c;但是看不到自己的。游戏开始后&#xff0c;每个人可以猜自己头上的帽子是什么颜色&#xff0c;或者可以弃权不猜。如…

鸿蒙开发ArkUI -常用布局

线性布局(Row/Column) 间距/主轴排列方式/交叉轴对齐方式 Column({}) {Column() {}.width(80%).height(50).backgroundColor(0xF5DEB3)Column() {}.width(80%).height(50).backgroundColor(0xD2B48C)Column() {}.width(80%).height(50).backgroundColor(0xF5DEB3) } .width(1…

组装自己的稳定扩散模型

在本文中&#xff0c;我们将利用 Hugging Face Diffusers 库的组件实现自己的稳定扩散模型&#xff0c;可以像 diffuser.diffuse() 一样简单地生成图像。 在线工具推荐&#xff1a; Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编…

三、【合成中的构图】

文章目录 在海报合成中&#xff0c;也会采用构图的思想来进行布局&#xff0c;像我们拍照摄影的时候&#xff0c;也会采用左右构图&#xff0c;居中构图&#xff0c;三点构图&#xff0c;对称构图&#xff0c;通过这些构图方式&#xff0c;合理的让各种素材结合在一起&#xff…

做外贸想赚客户的钱,先想想自己比别人强在哪

Nicky说她用搜到的客户邮箱信息&#xff0c;给客户发开发信&#xff0c;基本上是发一通都像石沉大海一样&#xff0c;没有激起任何水花。从软件中来的客户信息&#xff0c;有电话或者WhatsApp的&#xff0c;添加上了&#xff0c;有的客户会直接忽略&#xff0c;有的会问从哪里拿…

VC++、MFC中操作excel时,Rang和Rangs的区别是什么?

Rang 参考微软说明 作用 表示一个单元格、一行、一列、一个包含单个或若干连续单元格区域的选定单元格范围&#xff0c;或者一个三维区域。 说明 Range 的默认成员将不包含参数的调用转发至 Value 属性 如&#xff0c;someRange someOtherRange 等效于 someRange.Value …

C中指针的定义、表示法、类型和算术

0. 指针到底是什么&#xff1f; 在我们讨论指针的定义之前&#xff0c;让我们先了解一下当我们编写时会发生什么 int digit 42; 编译器保留一块内存来保存int值。该块的名称为digit&#xff0c;该块中存储的值为42。现在&#xff0c;为了记住该块&#xff0c;它被分配了一个地…

Mysql的二阶段提交

先看执行器与InnoDB引擎是如何更新一条指定的数据的 可以看到&#xff0c;InnoDB在写redo log时&#xff0c;并不是一次性写完的&#xff0c;而有两个阶段&#xff0c;Prepare与Commit阶段&#xff0c;这就是"两阶段提交"的含义。 为什么要写redo log&#xff0c;不…

echarts实际开发中遇到的问题

当tooltip内容过高时&#xff0c;增加滚动条 enterable:true, extraCssText: height:500px;overflow-y:auto;

https到底把什么加密了?

首先直接说结论&#xff0c; https安全通信模式&#xff0c;是使用TLS加密传输所有的http协议。再重复一遍&#xff0c;是所有&#xff01; 通常将TLS加密传输http这个通信过程称为https&#xff0c;如果使用协议封装的逻辑结构来表达就是&#xff1a; IP TCP TLS 【 HTTP 】…

(C++)string类的模拟实现

愿所有美好如期而遇 前言 我们模拟实现string类不是为了去实现他&#xff0c;而是为了了解他内部成员函数的一些运行原理和时间复杂度&#xff0c;在将来我们使用时能够合理地去使用他们。 为了避免我们模拟实现的string类与全局上的string类冲突(string类也在std命名空间中)&…

羊大师介绍,备孕阶段饮食规划及对羊奶的影响

备孕期是夫妻俩为了生育健康宝宝所准备的重要阶段&#xff0c;在这个阶段&#xff0c;营养的摄入对于双方的身体健康和胚胎的发育至关重要。而羊奶作为一种营养丰富的饮品&#xff0c;备孕期间是否能喝羊奶一直是备孕夫妇们关注的话题。本文小编羊大师将会详细解答这一问题&…

AIGC系列之:升级版的Stable Diffusion之SDXL介绍

目录 AIGC工具对比 DALL-E MidJourney Stable Diffusion 相关资料 SDXL介绍 SDXL生图效果 SDXL训练LoRA流程 AIGC工具对比 在目前的三大新兴文本转图像模型中&#xff0c;Stable Diffusion诞生得最晚&#xff0c;但由于拥有发展良好的开源社区&#xff0c;它的用户关注…

7 最大的以1为边界的正方形

来源&#xff1a;LeetCode第1139题 难度:中等 描述&#xff1a;给你一个由若干0和1组成的二维网格grid&#xff0c;请你找出边界全部由1组成的最大正方形子网格&#xff0c;并返回该子网格中的元素个数&#xff0c;若不存在&#xff0c;则返回0&#xff1b; 思路&#xff1a…

EasyExcel实现Excel百万级数据导入导出

1.1 模拟500w数据导出 需求&#xff1a;使用EasyExcel完成500w数据的导出。 500w数据的导出解决思路&#xff1a; 首先在查询数据库层面&#xff0c;需要分批进行查询&#xff08;比如每次查询20w&#xff09; 每查询一次结束&#xff0c;就使用EasyExcel工具将这些数据写入一…

【SpringBoot篇】使用Spring Cache高效处理缓存数据

文章目录 &#x1f339;简述Spring Cache&#x1f3f3;️‍&#x1f308;常用注解&#x1f33a;使用SpringCache&#x1f6f8;Cacheable注解⭐测试 &#x1f6f8;CacheEvict&#x1f38d;一次清理一条数据&#x1f38d;一次删除多条数据 Spring Cache是一个框架,只要简单加一个…

宠物网站的技术 SEO:完整指南

您是宠物行业网站的从业者吗&#xff1f;那么您一定知道&#xff0c;当人们寻找与宠物相关的资源时&#xff0c;在搜索引擎结果中排名靠前有多么重要。 这就是技术SEO的用武之地&#xff01;它正在调整您网站的后端代码和服务器配置&#xff0c;以在 SERP 中排名更高。 在此&…

redis的集群,主从复制,哨兵

redis的高可用 在Redis中&#xff0c;实现高可用的技术主要包括持久化、主从复制、哨兵和集群&#xff0c;下面分别说明它们的作用&#xff0c;以及解决了什么样的问题。 持久化&#xff1a; 持久化是最简单的高可用方法&#xff08;有时甚至不被归为高可用的手段&#xff09;…

splice()方法

splice(index,len,item)是vue中数组变异的方法之一&#xff0c;可以用来删除&#xff0c;更新&#xff0c;和增加数组内容参数: index&#xff1a;数组下标 len&#xff1a;替换/删除的长度 item&#xff1a;更新或增加的内容使用方法&#xff1a; 1、删除&#xff0c;当参数形…

SQL优化的总结

1. 编写高效的 SQL 语句 1.1 合理使用索引 - **索引类型&#xff1a;** 解释不同类型的索引&#xff08;B-Tree、哈希索引等&#xff09;的作用和适用场景。 - **选择和创建索引&#xff1a;** 根据查询需求和数据分布选择合适的列创建索引&#xff0c;避免过多或不必要的索…