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

Java数据结构与算法(最小栈)

前言

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

实现 MinStack 类:

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

实现原理

1.设计两个栈,第一个栈存放当前入栈元素,第二个栈数据入栈时的最小值。

2.最小值栈顶通过入栈数据与栈顶数据比较,将比较后最小的值再次压入栈顶。保障最小栈栈顶的值为最小。

具体代码实现

class MinStack {Deque<Integer> xStack;Deque<Integer> minStack;public MinStack() {xStack=new LinkedList();minStack=new LinkedList();minStack.push(Integer.MAX_VALUE);}public void push(int val) {xStack.push(val);minStack.push(Math.min(val,minStack.peek()));}public void pop() {xStack.pop();minStack.pop();}public int top() {return xStack.peek();}public int getMin() {return minStack.peek();}
}

QA:待定

http://www.lryc.cn/news/351257.html

相关文章:

  • 7 Series FPGAs Integrated Block for PCI Express IP核 Advanced模式配置详解(三)
  • k8s 部署mqtt简介
  • 汇凯金业:量化交易中常用的数学模型有哪些
  • 局部直方图均衡化去雾算法
  • selenium环境安装和web自动化基础
  • 【UE Websocket】“WebSocket Server”插件使用记录
  • spring中依赖注入(DI)是什么?
  • paligemma、Grounding-DINO-1.5简单无需标注无需训练直接可以使用的VLM图像到文本模型
  • FreeRTOS学习——FreeRTOS队列(下)之队列创建
  • js实现鼠标拖拽多选功能
  • postgres_exporter 监控pg坑一:备库无延迟但是监控告警备库延迟
  • vue打包部署到springboot,通过tomcat运行
  • 如何有效防止数据丢失
  • linux命令中arj使用
  • UE5中搭建一个简单的海岛
  • 爬虫学习--12.MySQL数据库的基本操作(下)
  • js的算法-选择排序(简单选择排序)
  • Mac虚拟机工具 CrossOver 24.0.0 Beta3 Mac中文版
  • 路由聚合和VRRP技术
  • 【原创教程】三菱FX3U系列培训专题课教案
  • 清空了电脑回收站,之前的文件还能否恢复?
  • 设计模式——职责链(责任链)模式
  • 功耗相关总结
  • 17款奔驰GLS450升级头等舱行政独立四座马鞍是什么样体验
  • 浏览器的下载行为基本原理
  • 浅谈微服务的自动化部署
  • 【C语言】8.C语言操作符详解(1)
  • Buzz库网络爬虫实例:快速爬取百度搜索实时热点
  • SQL注入:pikachu靶场中的SQL注入通关
  • springsecurity入门登录授权