题目

题链:剑指 Offer 30. 包含min函数的栈

题解

创建两个stack,一个用于所有元素的入栈,一个用于辅助记录每次入栈最小的元素。
大佬详细讲解:面试题30. 包含 min 函数的栈(辅助栈,清晰图解)

java代码

 class MinStack {// stack1用于存放元素// stack2用于存放每次入栈当前栈中最小值private Stack<Integer> stack1,stack2;// 初始化public MinStack() {stack1 = new Stack<>();stack2 = new Stack<>();}/*** 当存放最小元素的栈为空或者stack2当前最小值也就是栈顶元素小于入栈的值x时,stack2才进行入栈操作* @param x*/public void push(int x) {stack1.push(x);if (stack2.empty() || stack2.peek() >= x){stack2.push(x);}}/*** stack2当前栈顶元素等于要出栈的元素时才进行出栈*/public void pop() {if (stack2.peek().equals(stack1.pop())){stack2.pop();}}/*** 返回栈顶元素* @return*/public int top() {return stack1.peek();}/*** 返回当前最小值、也就是stack2的栈顶元素* @return*/public int min() {return stack2.peek();}}

(day 18 - 辅助栈)剑指 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函数的栈

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

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

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

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

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

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

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

最新文章

  1. 掌握计算机视觉开发技能的8个步骤
  2. Device eth0 does not seem to be present, delaying initialization.转载
  3. 编写高效的Android代码
  4. wordpress content.php,2020主题:content.php
  5. CM: UPDATE_PAYLOAD_FROM_ADDINSCH
  6. Any-Proxy在线反向代理源码
  7. mysql json数组拆分表_MaxCompute将json数组拆分成多行
  8. PHP CodeBase: 判断用户是否手机访问
  9. 扎心!七夕刚过“玫瑰花是什么垃圾”就成热搜 支付宝都看不下去了...
  10. mysql5.7编译安装
  11. C#制作、打包、签名、发布Activex全过程【转】
  12. linux命令学习_实验楼(一)
  13. alexa工具条下载_如何聆听(和删除)您给Alexa的每条命令
  14. MATLAB绘制中国地图超全教程
  15. 百度地图根据位置获取对应的位置中文
  16. RNA 3. SCI 文章中基于TCGA 差异表达基因之 DESeq2
  17. 服务器分区系统安装win7系统教程,详细教您gpt分区安装win7步骤
  18. Unity引擎源代码开源地址
  19. 如何在微图中提取生成等高线
  20. AcWing 2048. 干草

热门文章

  1. python的logging日志
  2. swift UI专项训练19 TextView 多行文本
  3. Android 文件存放路径
  4. Tomcat性能调优方案
  5. 61. Catalog 分类页面商品排序
  6. [2019杭电多校第六场][hdu6635]Nonsense Time
  7. vue-cli初始化一个项目
  8. rest syntax(parameters)
  9. 09-部署配置kubedns插件
  10. mysql批量插入之提高插入效率