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

leetcode做题笔记155. 最小栈

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

实现 MinStack 类:

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

思路一:模拟题意

c++解法

class MinStack {stack<int> x_stack;stack<int> min_stack;
public:MinStack() {min_stack.push(INT_MAX);}void push(int x) {x_stack.push(x);min_stack.push(min(min_stack.top(), x));}void pop() {x_stack.pop();min_stack.pop();}int top() {return x_stack.top();}int getMin() {return min_stack.top();}
};

分析:

本题要实现一个Minstack类,可以创建一个min_stack栈,栈顶为最小值,每次放入栈的时候判断栈顶和当前数的大小,调用getmin方法时返回min_stack栈顶,pop则两个栈均减少一个元素,实现所有方法后解决

总结:

本题考察对getmin栈的实现,用两个栈分别存储即可解决,时间复杂度为O(1),空间复杂度为O(n)

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

相关文章:

  • 蓝海彤翔亮相2023新疆网络文化节重点项目“新疆动漫节”
  • 【AI视野·今日NLP 自然语言处理论文速览 第四十四期】Fri, 29 Sep 2023
  • 【VsCode】vscode创建文件夹有小图标显示和配置
  • celery分布式异步任务队列-4.4.7
  • 解决M2苹果芯片Mac无法安装python=3.7的虚拟环境
  • Sound/播放提示音, Haptics/触觉反馈, LocalNotification/本地通知 的使用
  • Oracle实现主键字段自增
  • 【C++数据结构】二叉树搜索树【完整版】
  • TouchGFX之字体缓存
  • windows系统关闭软件开机自启的常用两种方法
  • 巧用@Conditional注解根据配置文件注入不同的bean对象
  • 论文笔记(整理):轨迹相似度顶会论文中使用的数据集
  • Python实现单例模式
  • spark相关网站
  • ThreeJS-3D教学四-光源
  • Linux 回收内存到底怎么计算anon/file回收比例,只是swappiness这么简单?
  • 软件测试中的测试工具和自动化测试
  • 个人博客系统测试报告
  • 高效搜索,提升编程效率
  • Java编程技巧:文件上传、下载、预览
  • 【蓝桥杯选拔赛真题63】Scratch云朵降雨 少儿编程scratch图形化编程 蓝桥杯选拔赛真题解析
  • 【新版】系统架构设计师 - 软件架构的演化与维护
  • 安卓循环遍历计时器
  • Docker-基本了解
  • Leetcode383. 赎金信
  • overleaf杂谈-Springer文献格式问题
  • No148.精选前端面试题,享受每天的挑战和学习
  • BASH shell脚本篇4——函数
  • VisualStudio配置OpenCV环境
  • C++手写NMS