news 2026/6/23 20:34:55

力扣刷题:最小栈

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
力扣刷题:最小栈

题目:
设计一个支持 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.

解析:
使用两个栈,一个做为主栈,一个作为辅助栈,辅助栈中每次存放的是主栈中入栈元素的最小值

具体代码:

varMinStack=function(){this.stack=[]this.min_stack=[Infinity]};/** * @param {number} val * @return {void} */MinStack.prototype.push=function(val){this.stack.push(val)this.min_stack.push(Math.min(val,this.min_stack.at(-1)))};/** * @return {void} */MinStack.prototype.pop=function(){this.stack.pop()this.min_stack.pop()};/** * @return {number} */MinStack.prototype.top=function(){returnthis.stack.at(-1)};/** * @return {number} */MinStack.prototype.getMin=function(){returnthis.min_stack.at(-1)};/** * Your MinStack object will be instantiated and called as such: * var obj = new MinStack() * obj.push(val) * obj.pop() * var param_3 = obj.top() * var param_4 = obj.getMin() */
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 16:38:58

如何配置一个!P地址和子网掩码?

配置IP地址和子网掩码的基础知识IP地址是网络中设备的唯一标识符,用于设备之间的通信。子网掩码用于划分IP地址的网络部分和主机部分。配置IP地址和子网掩码是网络管理的基本任务之一。IPv4地址由32位二进制数组成,通常表示为四个十进制数,每…

作者头像 李华
网站建设 2026/6/23 16:16:53

EmotiVoice项目依赖项精简计划:降低部署复杂度

EmotiVoice项目依赖项精简计划:降低部署复杂度 在虚拟主播直播带货、AI有声书自动生成、游戏NPC情绪化对话层出不穷的今天,一个共通的技术瓶颈逐渐浮现——如何让高性能语音合成系统真正“跑得起来”?尤其是像EmotiVoice这样具备零样本克隆与…

作者头像 李华
网站建设 2026/6/23 16:46:18

魔盒项目开发纪实:移动端应用开发

继续移动端项目框架搭建,购买的材料预计今天可以送货,到货后搭建一个demo进行测试,之后进行电路图绘制和3d建模做盒子造型。 项目概述 MagicBox 是一个基于 Flutter 开发的跨平台移动端应用,用于管理智能设备的发现、配置和控制…

作者头像 李华
网站建设 2026/6/23 16:44:39

鸿蒙ArkTS与Vue3状态管理对比

在鸿蒙(HarmonyOS)ArkTS开发中,状态管理装饰器与Vue 3的响应式系统设计理念相似,但实现和语法存在显著差异。以下从核心机制、语法和功能维度进行专业对比:1. 核心机制对比特性鸿蒙 ArkTSVue 3响应式基础State、Prop 等…

作者头像 李华
网站建设 2026/6/23 16:44:19

EmotiVoice能否生成辩论赛语音?逻辑性强语调输出

EmotiVoice能否生成辩论赛语音?逻辑性强语调输出 在一场激烈的辩论赛中,真正打动评委的往往不只是论点本身,更是说话的方式——那一声斩钉截铁的反驳、一次恰到好处的停顿、一段情绪递进的陈词。语气的强弱、节奏的变化、情感的张力&#xff…

作者头像 李华