(day 18 - 辅助栈)剑指 Offer 30. 包含min函数的栈
题目
题链:剑指 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函数的栈相关推荐
- 《LeetCode力扣练习》剑指 Offer 30. 包含min函数的栈 Java
<LeetCode力扣练习>剑指 Offer 30. 包含min函数的栈 Java 一.资源 题目: 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调 ...
- 【LeetCode】剑指 Offer 30. 包含min函数的栈
[LeetCode]剑指 Offer 30. 包含min函数的栈 文章目录 [LeetCode]剑指 Offer 30. 包含min函数的栈 一.辅助栈 一.辅助栈 解题思路: 普通栈的 push() ...
- 剑指 Offer 30. 包含min函数的栈 (python实现)
剑指 Offer 30. 包含min函数的栈 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min.push 及 pop 的时间复杂度都是 O(1). 示例 ...
- Python描述 LeetCode 剑指 Offer 30. 包含min函数的栈
Python描述 LeetCode 剑指 Offer 30. 包含min函数的栈 大家好,我是亓官劼(qí guān jié ),在[亓官劼]公众号.CSDN.GitHub.B站等平台分享一些技术 ...
- 【简洁写法】剑指 Offer 30. 包含min函数的栈
立志用最少的代码做最高效的表达 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min.push 及 pop 的时间复杂度都是 O(1). 示例: MinSt ...
- 剑指offer——30.包含min函数的栈
题目: 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). 知识点: 这种需要持续输出最小或最大的数的解决办法之一:引入辅助栈 注意: 无 代码实现 ...
- 剑指 Offer 30. 包含min函数的栈
定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min.push 及 pop 的时间复杂度都是 O(1). 示例: MinStack minStack = n ...
- 剑指Offer 30.包含 min 函数的栈(Python)
定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min.top.push 及 pop 的时间复杂度都是 O(1). # 例子: MinStack minSta ...
- 剑指 Offer 30. 包含min函数的栈(python3编写)
目录 1.题目描述: 2.方法: 思路: 代码: 1.题目描述: 2.方法: 思路: 思路来源:https://leetcode-cn.com/problems/bao-han-minhan-shu- ...
- 【算法】剑指 Offer 30. 包含min函数的栈
文章目录 1.概述 2.分析 3. 链表法 4. 双栈法 1.概述 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/bao-han-minhan ...
最新文章
- 掌握计算机视觉开发技能的8个步骤
- Device eth0 does not seem to be present, delaying initialization.转载
- 编写高效的Android代码
- wordpress content.php,2020主题:content.php
- CM: UPDATE_PAYLOAD_FROM_ADDINSCH
- Any-Proxy在线反向代理源码
- mysql json数组拆分表_MaxCompute将json数组拆分成多行
- PHP CodeBase: 判断用户是否手机访问
- 扎心!七夕刚过“玫瑰花是什么垃圾”就成热搜 支付宝都看不下去了...
- mysql5.7编译安装
- C#制作、打包、签名、发布Activex全过程【转】
- linux命令学习_实验楼(一)
- alexa工具条下载_如何聆听(和删除)您给Alexa的每条命令
- MATLAB绘制中国地图超全教程
- 百度地图根据位置获取对应的位置中文
- RNA 3. SCI 文章中基于TCGA 差异表达基因之 DESeq2
- 服务器分区系统安装win7系统教程,详细教您gpt分区安装win7步骤
- Unity引擎源代码开源地址
- 如何在微图中提取生成等高线
- AcWing 2048. 干草