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

力扣155.最小栈

题目

力扣链接:155. 最小栈 - 力扣(LeetCode)

思路

这道题不能用一个int min常量去储存最小值,因为如何最小值被pop了,此时你的min存储的最小值就是错的,而且你也找不到上一个最小值了.

所以我们得用一个栈来存储最小值.

总共有两个栈,一个st存放普通数据,一个minst放最小值.

代码

注意事项说明:

1.push函数中,如果push的val与最小值相等,那么此时val也需要入minst

2.pop函数中,先确定一下st的top是不是minst的top,如果是的话,minst也需要pop

class MinStack {
public:MinStack() {}void push(int val) {st.push(val);if(minst.size()==0||minst.top()>=val){minst.push(val);}}void pop() {if(minst.top()==st.top()){minst.pop();}st.pop();}int top() {return st.top();}int getMin() {return minst.top();}private:stack<int> st;stack<int> minst;
};/*** 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.dtcms.com/a/348386.html

相关文章:

  • 嵌入式知识篇---32GUI
  • 神经网络|(十四)概率论基础知识-协方差和方差
  • 使用 Golang 的 Gin 框架实现一周极限编程计划:全网 AIGC 项目热点追踪应用
  • 自然语言处理——06 迁移学习(下)
  • 自然语言处理——06 迁移学习(中)
  • RockyLinux9.6安装k8s
  • 【(含模板)滑动窗口 - LeetCode】3. 无重复字符的最长子串
  • 从“小麻烦”到“大难题”:Spring Boot 配置文件的坑与解
  • UE5游戏开发的理想硬件配置指南:从入门到专业级方案
  • MySQL视图有什么用?一文读懂虚拟表的六大核心价值
  • 数据治理进阶——埃森哲 数据治理元数据管理建设规划方案【附全文阅读】
  • LabVIEW Vision视觉引导撑簧圈智能插装
  • java-代码随想录第十五天| 12.平衡二叉树、222.完全二叉树的节点个数、404.左叶子之和
  • 网络安全转型书籍清单
  • JavaScript 性能优化实战:全方位提升 Web 应用性能
  • 【LeetCode 热题 100】152. 乘积最大子数组——(解法一)递推
  • Vue2+Vue3前端开发笔记合集
  • 九、redis 入门 之 数据库和缓存一致性问题
  • Vue2+Vue3前端开发_Day12-Day14_大事件管理系统
  • Python无穷大与NaN处理完全指南:从基础到工程级解决方案
  • 【Java】springboot的自动配置
  • Wagtail CRX 简介
  • Python使用-Python环境安装
  • 【分布式中间件】Kafka 核心配置深度解析与优化指南
  • 【存在重复元素II】
  • 57 C++ 现代C++编程艺术6-类的内部类
  • MSF基础知识
  • Flask蓝图:模块化开发的利器
  • 数学建模--模糊综合评价法
  • 优化OpenHarmony中lspci命令实现直接获取设备具体型号