定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。

示例:

MinStack minStack = new MinStack();
minStack.push(-2);
minStack.push(0);
minStack.push(-3);
minStack.min();   --> 返回 -3.
minStack.pop();
minStack.top();      --> 返回 0.
minStack.min();   --> 返回 -2.

思路:
定义一个辅助栈,来存放A中每一次进栈后的小值,从而B的栈顶就是A的最小值

代码如下:

class MinStack {Stack<Integer> A, B;//定义两个栈,A是数据栈,B是辅助栈/** initialize your data structure here. */public MinStack() {A=new Stack<>();B=new Stack<>();}public void push(int x) {A.add(x);if(B.isEmpty()||x<=B.peek()){B.add(x);}}public void pop() {int popA=A.pop();if(popA==B.peek()){B.pop();}}public int top() {return A.peek();}public int min() {return B.peek();}
}/*** Your MinStack object will be instantiated and called as such:* MinStack obj = new MinStack();* obj.push(x);* obj.pop();* int param_3 = obj.top();* int param_4 = obj.min();*/

剑指 Offer 30. 包含min函数的栈相关推荐

  1. 《LeetCode力扣练习》剑指 Offer 30. 包含min函数的栈 Java

    <LeetCode力扣练习>剑指 Offer 30. 包含min函数的栈 Java 一.资源 题目: 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调 ...

  2. 【LeetCode】剑指 Offer 30. 包含min函数的栈

    [LeetCode]剑指 Offer 30. 包含min函数的栈 文章目录 [LeetCode]剑指 Offer 30. 包含min函数的栈 一.辅助栈 一.辅助栈 解题思路: 普通栈的 push() ...

  3. 剑指 Offer 30. 包含min函数的栈 (python实现)

    剑指 Offer 30. 包含min函数的栈 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min.push 及 pop 的时间复杂度都是 O(1). 示例 ...

  4. Python描述 LeetCode 剑指 Offer 30. 包含min函数的栈

    Python描述 LeetCode 剑指 Offer 30. 包含min函数的栈   大家好,我是亓官劼(qí guān jié ),在[亓官劼]公众号.CSDN.GitHub.B站等平台分享一些技术 ...

  5. 【简洁写法】剑指 Offer 30. 包含min函数的栈

    立志用最少的代码做最高效的表达 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min.push 及 pop 的时间复杂度都是 O(1). 示例: MinSt ...

  6. 剑指offer——30.包含min函数的栈

    题目: 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). 知识点: 这种需要持续输出最小或最大的数的解决办法之一:引入辅助栈 注意: 无 代码实现 ...

  7. 剑指Offer 30.包含 min 函数的栈(Python)

    定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min.top.push 及 pop 的时间复杂度都是 O(1). # 例子: MinStack minSta ...

  8. 【算法】剑指 Offer 30. 包含min函数的栈

    文章目录 1.概述 2.分析 3. 链表法 4. 双栈法 1.概述 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/bao-han-minhan ...

  9. 剑指 Offer 30. 包含min函数的栈(python3编写)

    目录 1.题目描述: 2.方法: 思路: 代码: 1.题目描述: 2.方法: 思路: 思路来源:https://leetcode-cn.com/problems/bao-han-minhan-shu- ...

最新文章

  1. php webapi验签,Asp.netCore3.0 WebApi从0到1手摸手教你写【5】增加接口参数签名验证...
  2. 有答案了!一张图告诉你到底学Python还是Java!你咋看?
  3. Hadoop平台K-Means聚类算法分布式实现+MapReduce通俗讲解
  4. gateway动态路由_无语!SpringCloud Gateway动态路由之Nacos,我已经讲得很清楚了
  5. java 获取文件大小_利用百度AI OCR图片识别,Java实现PDF中的图片转换成文字
  6. 面试时遇到一致性哈希算法这样回答会让面试官眼前一亮
  7. 分享两个必应壁纸接口,可用来获取高质量壁纸和故事
  8. c语言奇偶校验完整程序,求助 奇偶校验的C语言编程
  9. 青花瓷音乐的单片机c语言程序,单片机蜂鸣器演奏青花瓷的程序
  10. 普通路由器改4g路由器_4G工业路由器在安防领域中的应用
  11. 从根儿上解决Word中标题多级标题编号不联动问题
  12. 东芝Toshiba DP-3003 一体机驱动
  13. 用户粘性︱如何提升用户忠诚度
  14. lamp兄弟连PHP视频教程 笔记心得
  15. 谷歌打不开了吧,访问谷歌镜像Glgoo.com吧_我是亲民_新浪博客
  16. 使用java爬取国家统计局的12位行政区划代码
  17. rust新版组队指令_腐蚀rust新版服务器指令大全 腐蚀指令一览
  18. ajax thinkphp配合ajax的简单列子
  19. 陌上谁家年少足风流?
  20. 胜博发表示玩游戏也能做公益!守望先锋为乳癌研究基金会募得一千多万美金

热门文章

  1. Java 转 Python 学习笔记-基础篇
  2. tomcat后台多种姿势getshell
  3. 拒绝做“码农”,我们是软件设计师!
  4. 微信公众号白名单配置
  5. ubuntu下常用windows的替代软件
  6. 网站为什么会被降权 网站降权恢复的解决方案
  7. 微信小程序input输入框
  8. kali linux渗透测试之漏洞扫描
  9. 使用uni-app实现单页面的跳转以及传参。
  10. 7-37 会场安排问题——贪心