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

leetcode155 最小栈(Java)

思路:

创建两个栈,一个用来“正常进出”,另一个记录“当前最小值”

一、关于 “方法名重复会不会冲突”

原因是:MinStack类中的push/pop自定义方法,而stack1/stack2是类内部的Stack对象 —— 二者属于不同的 “作用域”

  • 调用MinStackpush:是minStack.push(5)(调用的是MinStack类的方法);
  • 调用stack1push:是stack1.push(5)(调用的是Stack类的方法)。

简单说:方法是 “依附于对象 / 类” 的,只要调用时明确是哪个对象的方法,就不会冲突

二、代码核心问题(空间浪费)

stack2 会和 stack1 存储完全相同长度的元素,比如 stack1 存 10000 个元素,stack2 也存 10000 个 —— 但其实很多值是重复的(比如连续压入比最小值大的数,stack2 反复压入同一个最小值)。

这种设计的空间复杂度是 O (n)(和优化版一样),但实际存储的重复数据会导致:

  1. 内存占用更高(比如存大量数据时);
  2. push/pop 操作的常数时间略高(多压 / 多弹一个重复值)

三、优化版

http://www.gsyq.cn/news/105153.html

相关文章:

  • 调问更新12.5~12.12:部门进度统计+1项功能新增+6项功能优化+3项BugFix
  • PHP 8.6兼容性测试实战(资深架构师亲授迁移经验)
  • 农业科研人员必看:如何用R语言构建高精度随机森林预测模型
  • NVIDIA多模态AI能力全景分析:高效生态系统、训练优化与落地实践
  • 【PHP性能优化关键一步】:深入PHP 8.6内存泄漏监控与自动预警方案
  • 【纤维协程调度优化指南】:掌握任务优先级分配的5大核心策略
  • 篮球场景目标检测与定位_YOLO11-RFPN实现详解
  • 【Laravel 13缓存清理终极指南】:掌握多模态缓存清除的5大核心策略
  • 亲爱的圣诞老人,这里有一点小小的帮助,献给圣诞节
  • 【高端图形渲染必修课】:掌握4种专业级抗锯齿算法核心原理
  • 【金融风险管理实战】:手把手教你用R语言计算VaR的5种核心方法
  • 基于VDLL的矢量型GPS信号跟踪算法MATLAB仿真,包括程序+word设计文档
  • 【渲染的纹理:从入门到精通】:掌握GPU纹理映射核心技术的7大关键步骤
  • 两种方法实现循环温度的边界条件设置及复杂的温度变化
  • 【PHP扩展性能优化秘籍】:基于Rust的函数调试与内存泄漏排查指南
  • 【GraphQL性能优化指南】:利用PHP字段别名提升接口响应速度300%
  • 【DOTS物理系统深度解析】:掌握高性能物理模拟的5大核心技巧
  • 错过将后悔!R量子模拟中不可不知的门序列设计原则
  • 【Flutter x 鸿蒙】第四篇:双向通信——Flutter调用鸿蒙原生能力 - 青青子衿-
  • Java毕设项目:基于springboot工资管理系统(源码+文档,讲解、调试运行,定制等)
  • 【R Shiny多模态数据导入终极指南】:掌握5种高效组件实现无缝数据集成
  • 医疗数据泄露风险激增?,紧急应对PHP脱敏新规调整
  • 一文详解「全面向加密货币转型」的 Robinhood 最新基本面及收入来源
  • Java毕设项目:基于SpringBoot+Vue高校奖学金评定管理系统设计与实现基于springboot高校学生奖学金评定系统的设计与实现(源码+文档,讲解、调试运行,定制等)
  • 汇川H5U标准化编程模板!! 逻辑非常清晰,对规范化编程很有参考价值!!! 1.注释详细,功能齐全,逻辑严谨 2.软元件命名,地址规划规范 3.启停、报警总结、光电检测程序完整 4.气缸、轴控功能块编
  • 【企业数字化转型新引擎】:量子服务集成带来的4倍效能提升秘诀
  • 蚂蚁“灵光”实测测评:这款号称“让复杂变简单”的AI工具到底好不好用?
  • Dify智能体平台条件分支调用Qwen-Image场景设计
  • 揭秘医疗系统PHP数据备份难题:3步实现安全可靠备份
  • NVIDIA GeForce GTX 1060 支持4K吗