剑指 Offer 30. 包含min函数的栈
定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 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函数的栈相关推荐
- 《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 函数的栈(Python)
定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min.top.push 及 pop 的时间复杂度都是 O(1). # 例子: MinStack minSta ...
- 【算法】剑指 Offer 30. 包含min函数的栈
文章目录 1.概述 2.分析 3. 链表法 4. 双栈法 1.概述 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/bao-han-minhan ...
- 剑指 Offer 30. 包含min函数的栈(python3编写)
目录 1.题目描述: 2.方法: 思路: 代码: 1.题目描述: 2.方法: 思路: 思路来源:https://leetcode-cn.com/problems/bao-han-minhan-shu- ...
最新文章
- php webapi验签,Asp.netCore3.0 WebApi从0到1手摸手教你写【5】增加接口参数签名验证...
- 有答案了!一张图告诉你到底学Python还是Java!你咋看?
- Hadoop平台K-Means聚类算法分布式实现+MapReduce通俗讲解
- gateway动态路由_无语!SpringCloud Gateway动态路由之Nacos,我已经讲得很清楚了
- java 获取文件大小_利用百度AI OCR图片识别,Java实现PDF中的图片转换成文字
- 面试时遇到一致性哈希算法这样回答会让面试官眼前一亮
- 分享两个必应壁纸接口,可用来获取高质量壁纸和故事
- c语言奇偶校验完整程序,求助 奇偶校验的C语言编程
- 青花瓷音乐的单片机c语言程序,单片机蜂鸣器演奏青花瓷的程序
- 普通路由器改4g路由器_4G工业路由器在安防领域中的应用
- 从根儿上解决Word中标题多级标题编号不联动问题
- 东芝Toshiba DP-3003 一体机驱动
- 用户粘性︱如何提升用户忠诚度
- lamp兄弟连PHP视频教程 笔记心得
- 谷歌打不开了吧,访问谷歌镜像Glgoo.com吧_我是亲民_新浪博客
- 使用java爬取国家统计局的12位行政区划代码
- rust新版组队指令_腐蚀rust新版服务器指令大全 腐蚀指令一览
- ajax thinkphp配合ajax的简单列子
- 陌上谁家年少足风流?
- 胜博发表示玩游戏也能做公益!守望先锋为乳癌研究基金会募得一千多万美金