设计一个支持 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]

思路:

正常在getMin新建辅助栈,获取最小值时时间会超限

所以,在该类开始时就建立两个栈,一个用来存放数据,一个存放每个数据存入时更新的最小值

对两个栈同时做push和pop操作,确保两者对应正确

class MinStack {Stack<Integer> stack;Stack<Integer> minStack;public MinStack() {stack = new Stack<>();minStack = new Stack<>();minStack.push(Integer.MAX_VALUE);}public void push(int val) {stack.push(val);minStack.push(Math.min(val, minStack.peek()));}public void pop() {if(!stack.isEmpty())stack.pop();minStack.pop();}public int top() {if (!stack.isEmpty()){return stack.peek();}else return -1;}public int getMin() {if (stack.isEmpty()) {return -1;}int min = minStack.peek();return min;}
}

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

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

相关文章

TDesign学习:(二)i18n配置与使用

配置 src/locales/lang/en_US/pages 目录下对应的各个模块语言的对象

k8s 内置的containerd配置阿里云个人镜像地址及认证

原因&#xff1a;阿里云仓库必须使用凭证登录&#xff0c;不然无法进行镜像拉取&#xff01;1.生成自己的凭证信息# 格式&#xff1a;阿里云仓库用户名:凭证密码 echo -n myuser:mypass | base64 #生成的加密凭证 bXl1c2VyOm15cGFzcw2.修改containerd的镜像仓库配置vi /etc/co…

Python实战:HTTP接口数据获取与PostgreSQL存储系统

项目背景 项目结构 关键技术点 1. 灵活的HTTP请求处理 2. 自动表结构生成与字段类型推断 3. 健壮的数据库操作与错误处理 4. 配置驱动的设计理念 功能实现 1. 数据获取流程 2. 命令行参数支持 2. 数据处理与字段排除 项目扩展与优化方向 结语 项目背景 在日常开发和数据分析工…

递归,搜索与回溯算法

递归→搜索→回溯 名词解释 递归 1.什么是递归 形象地说就是函数自己调用自己。 例子&#xff1a; 二叉树的遍历-后序遍历 void dfs(treenode* root) {//细节 - 出口if(root NULL) return;dfs(root->left);dfs(root->right);printf(root->val); }快排 void quickSort…

【OpenAPI】OpenAPI 3.0x 格式解析技术指南

OpenAPI 格式解析技术指南 概述 OpenAPI&#xff08;原名 Swagger&#xff09;是一种用于描述 REST API 的规范格式&#xff0c;它提供了标准化的方式来定义 API 的结构、参数、响应等信息。本文将深入探讨如何解析 OpenAPI 文档&#xff0c;并基于实际项目中的 openapi-pars…

【亲测有效】解决 “Batch script contains DOS line breaks (\r\n)” 报错

【亲测有效】解决 “Batch script contains DOS line breaks (\r\n)” 报错 适用场景&#xff1a;在 Linux/Slurm 集群上 sbatch 提交脚本或运行 Shell 脚本时遇到 “DOS line breaks (\r\n) instead of UNIX line breaks (\n)” 的报错。 文章目录【亲测有效】解决 “Batch sc…

动态 SQL 标签对比表

动态 SQL 标签对比表标签用途关键属性默认行为<if>条件判断test条件成立则拼接<where>处理 WHERE无去除 AND/OR 开头&#xff0c;加 WHERE<set>处理 SET无去除末尾逗号&#xff0c;加 SET<foreach>遍历集合collection, item, separator无默认&#xff…

征程 6 灰度图部署链路介绍

一、为什么是灰度图 相较于 RGB 三通道图像&#xff0c;灰度图仅保留亮度信息&#xff08;Y 分量&#xff09;&#xff0c;数据量减少 2/3&#xff0c;相比于常用的 NV12 图像&#xff0c;数据量减少 1/3&#xff0c;内存占用与计算负载显著降低。对于下游网络结构而言&#xf…

计算机毕业设计 基于Hadoop的健康饮食推荐系统的设计与实现 Java 大数据毕业设计 Hadoop毕业设计选题【附源码+文档报告+安装调试】

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python、大数据、人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&…

基于海康SDK的C++实时视频流逐帧抓取存图小工具

目录 效果 项目 使用 代码 下载 效果 项目 使用 PlayDemo.exe <IP> <Port> <Username> <Password> 代码 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string> #include <iostream> #include <Windows.…

windows|引用账户被锁定 且暂时无法登录

问题描述尴了个尬&#xff0c;一直认为笔记本锁屏密码记得很牢靠&#xff0c;没想到因为少敲了一个点&#xff08;.&#xff09;&#xff0c;多次输入登陆失败&#xff0c;导致账户被锁定了&#xff0c;提示&#xff1a;引用账户被锁定 且暂时无法登录。然后用手机搜索了一下&a…

系统核心解析:深入操作系统内部机制——进程管理与控制指南(三)【进程优先级/切换/调度】

♥♥♥~~~~~~欢迎光临知星小度博客空间~~~~~~♥♥♥ ♥♥♥零星地变得优秀~也能拼凑出星河~♥♥♥ ♥♥♥我们一起努力成为更好的自己~♥♥♥ ♥♥♥如果这一篇博客对你有帮助~别忘了点赞分享哦~♥♥♥ ♥♥♥如果有什么问题可以评论区留言或者私信我哦~♥♥♥ ✨✨✨✨✨✨个人…

量子-resistant密码学研究

当亚马逊CloudFront在2025年9月宣布为所有TLS连接默认启用后量子加密支持时&#xff0c;这一举措标志着抗量子密码学从学术研究正式迈入大规模实用部署阶段。与此同时&#xff0c;密码学家们发出警告&#xff1a;一台拥有不到一百万噪声量子比特的计算机&#xff0c;可能在一周…

ARM 架构的存储器模型

ARM 架构的存储器模型 ARM 的存储器模型是一个相对复杂但设计精密的体系&#xff0c;它定义了处理器如何与内存进行交互&#xff0c;包括内存访问的顺序、可见性以及缓存行为等。这对于理解多核编程、并发控制和底层系统性能至关重要。 ARM 架构&#xff0c;特别是 ARMv8 及以后…

机器学习-多层感知机MLP

线性方法->多层感知机&#xff08;MLP&#xff09; 一个全连接&#xff08;线性、dense&#xff09;层有参数W∈Rm∗nW\in\R^{m*n}W∈Rm∗n,b∈Rmb\in\R^mb∈Rm&#xff0c;其用于计算输出yWxb∈RmyWxb\in\R^myWxb∈Rm 线性回归&#xff1a;全连接层有1个输出softmax 回归&a…

PostgreSQL——并行查询

这里写目录标题一、并行查询相关自己置参数二、并行扫描2.1、并行顺序扫描2.2、并行索引扫描2.3、并行index-only扫描2.4、并行bitmap heap扫描三、并行聚合四、多表关联4.1、Nested loop多表关联4.2、Merge join多表关联4.3、Hash join多表关联了解 Oracle 的朋友应该知道 Ora…

智能体赋能金融多模态报告自动化生成:技术原理与实现流程全解析

在金融领域&#xff0c;研报作为决策参考的核心载体&#xff0c;其生成过程往往涉及海量数据采集、多维度分析及专业内容整合&#xff0c;传统人工制作模式不仅耗时耗力&#xff0c;还难以满足实时性与标准化需求。随着人工智能技术的发展&#xff0c;“智能体赋能的金融多模态…

uniapp和vue3项目中引入echarts 、lime-echart(微信小程序、H5等)

目录标题1、获取 lime-echart插件2、安装 echarts3、相关代码4、在线定制5、效果截图1、获取 lime-echart插件 https://gitee.com/liangei/lime-echart 将其中组件和静态资源分别放入当前项目对应的文件夹中&#xff1a; 2、安装 echarts npm install echarts --save具体查…

ZYNQ7020+AD9361裸机驱动验证

1. 程序编译验证 a. 下载源代码 首先需要从GitHub下载相应的源码&#xff0c;打开git bash&#xff0c;然后在mingwin中使用以下命令下载源码。 git clone --recursive https://github.com/MicroPhase/antsdr_standalone.git 注意&#xff1a;在下载源码的时候&#xff0c;使…

Grafana配置连接时候证书与mongosqld启动证书的关系

目录 证书角色说明 1. BI Connector 端的证书 (--sslPEMKeyFile) 2. Grafana 端的证书 (TLS/SSL Client Certificate & Key) 它们之间的关系 配置建议 情况一&#xff1a;只需要服务器验证&#xff08;最常见&#xff09; 情况二&#xff1a;需要双向SSL认证&#x…