题目描述:

方法一:辅助栈

class MinStack:def __init__(self):"""initialize your data structure here."""self.stack = []self.min_stack = []def push(self, x: int) -> None:self.stack.append(x)if not self.min_stack or x <= self.min_stack[-1]:self.min_stack.append(x)def pop(self) -> None:if self.stack[-1] == self.min_stack[-1]:self.min_stack.pop()self.stack.pop()def top(self) -> int:return self.stack[-1]def getMin(self) -> int:if not self.min_stack:return Nonereturn self.min_stack[-1]

另:(更快)

class MinStack:def __init__(self):"""initialize your data structure here."""self.curStack = []self.minStack = []def push(self, x: int) -> None:self.curStack.append(x)if len(self.minStack) == 0:self.minStack.append(x)elif x < self.minStack[-1]:self.minStack.append(x)else:self.minStack.append(self.minStack[-1])def pop(self) -> None:self.curStack.pop()self.minStack.pop()def top(self) -> int:return self.curStack[-1]def getMin(self) -> int:return self.minStack[-1]

转载于:https://www.cnblogs.com/oldby/p/11205842.html

leetcode-155-最小栈相关推荐

  1. LeetCode:155. 最小栈

    题目链接 155.最小栈 题目描述 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈. push(x) -- 将元素 x 推入栈中. pop() -- 删除栈顶的元素. ...

  2. leetcode 155. 最小栈

    难度:简单 频次:59 题目: 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈. 实现 MinStack 类: MinStack() 初始化堆栈对象. void ...

  3. leetcode 155. 最小栈(常数时间获取最小值,需要维护两个栈)

    题目 思路 左神讲过的经典算法,维护两个栈: stack,用来存储数据 minStack,用来存储每个位置情况下的最小值,类似于动态规划. 每次入栈2个元素,一个是入栈的元素本身,一个是当前栈元素的最 ...

  4. LeetCode 155.最小栈

    设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈. 实现 MinStack 类: MinStack() 初始化堆栈对象. void push(int val) 将元 ...

  5. leetcode - 155. 最小栈

    设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈. push(x) – 将元素 x 推入栈中. pop() – 删除栈顶的元素. top() – 获取栈顶元素. get ...

  6. Leetcode 155. 最小栈 (每日一题 20210923)

    设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈.push(x) -- 将元素 x 推入栈中. pop() -- 删除栈顶的元素. top() -- 获取栈顶元素. ...

  7. 【LeetCode】【HOT】155. 最小栈(辅助栈)

    [LeetCode][HOT]155. 最小栈 文章目录 [LeetCode][HOT]155. 最小栈 package hot;import java.util.ArrayDeque; import ...

  8. leetcode系列-155.最小栈

    leetcode系列–第155题.最小栈 题目描述: 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈. 实现 MinStack 类: MinStack() 初始化 ...

  9. 【LeetCode笔记】155. 最小栈(Java、栈)

    文章目录 题目描述 思路 & 代码 更新版 题目描述 用空间换时间的经典例子,唯一要解决的地方就是 getMin() 如何实现常数检索 (貌似也是面试常考题) 思路 & 代码 既然想快 ...

  10. leetcode题目-最小栈和用两个栈实现队列

    1.用两个栈实现队列 a栈用来存放加入的数 b栈用来存放要删除的数 当b栈存在数据时,就把top的元素pop掉 直到b栈中没有数据存放,再重新遍历a栈,把a的数据倒着遍历进b栈.也就是b栈存放着倒着的 ...

最新文章

  1. 根据keyName(如:result.data.name),无限深度遍历获取keyValue
  2. R语言基于自定义函数构建xgboost模型并使用LIME解释器进行模型预测结果解释:基于训练数据以及模型构建LIME解释器解释多个iris数据样本的预测结果、使用LIME解释器进行模型预测结果解释
  3. 企业级LNMP架构搭建实例(基于Centos6.x)
  4. Firefox 修改User Agent
  5. 写了一个测试正则表达式的小工具
  6. python不换行_Python print 输出时不换行
  7. NYOJ 372 巧克力
  8. 07 | 案例篇:系统中出现大量不可中断进程和僵尸进程怎么办?(上)
  9. Versant 对象型数据库
  10. 厉害了!VMware ESXi安装记录,附下载
  11. matlab怎么实现OFDM仿真,OFDMmatlab实现仿真源代码
  12. C++之指针探究(二):一级指针和一维数组
  13. Java 笔试强训 牛客网选择编程题 01
  14. lintcode:Add Binary 二进制求和
  15. 容器和泛型 容器重点掌握
  16. Qt5.9配置安卓开发环境
  17. 使用dex2jar反编译apk
  18. 惠群计算机科技,电脑报专访:探索新视角,再造多元化的宏碁
  19. 【已解决】Mac每次重启,谷歌Chrome都会丢失所有的扩展程序/extensions/插件
  20. 神经网络实现---SSD

热门文章

  1. 年轻人的第一个自定义Springboot starter
  2. 并发编程常见面试题总结一
  3. String、StringBuilder、StringBuffer、StringConcatFactory
  4. springcloud之feign远程调用
  5. Jxl读写Excel文件
  6. 官方教程:Apache Kylin和Superset集成,使用开源组件,完美打造OLAP系统
  7. Linux学习笔记第二周第四次课(2月1日)
  8. 前端那些事之日历多选插件篇
  9. ActiveMQ官方文档翻译-内嵌消息中间件
  10. WebView 简单使用方法