【力扣100】【好题】155.最小栈

添加链接描述

class MinStack:

    def __init__(self):
        self.stack=[]

    def push(self, val: int) -> None:
        if not self.stack:
            self.stack.append([val,val])
        else:
            self.stack.append([val,min(val,self.stack[-1][1])])


    def pop(self) -> None:
        self.stack.pop()

    def top(self) -> int:
        return self.stack[-1][0]

    def getMin(self) -> int:
        return self.stack[-1][1]


# Your MinStack object will be instantiated and called as such:
# obj = MinStack()
# obj.push(val)
# obj.pop()
# param_3 = obj.top()
# param_4 = obj.getMin()

思路:

  1. 题目要求在常数时间内,所以在getmin()函数中使用sort或者min这种弱智的方法
  2. 我们把每个进入栈的元素定义为[ val , min ] ,让元素以这种方式入栈,每次只需要维护这个最小值就可以了
  3. python中用list定义栈的好处是,栈顶元素就是stack[-1]

相关推荐

  1. 100】【155.

    2024-01-10 06:06:08       63 阅读
  2. 【LeetCode热100155.

    2024-01-10 06:06:08       41 阅读
  3. LeetCode-热100155.

    2024-01-10 06:06:08       40 阅读
  4. 经典150第三十三覆盖子串

    2024-01-10 06:06:08       37 阅读
  5. 面试150 | 209.长度的子数组

    2024-01-10 06:06:08       61 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-10 06:06:08       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-10 06:06:08       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-10 06:06:08       82 阅读
  4. Python语言-面向对象

    2024-01-10 06:06:08       91 阅读

热门阅读

  1. ES6规范

    2024-01-10 06:06:08       44 阅读
  2. 【数值分析】逼近,正交多项式

    2024-01-10 06:06:08       52 阅读
  3. 【Spring Boot 3】【数据源】自定义JPA数据源

    2024-01-10 06:06:08       66 阅读
  4. 云原生专栏

    2024-01-10 06:06:08       57 阅读
  5. 第二百五十五回

    2024-01-10 06:06:08       61 阅读
  6. WPF入门到跪下 第八章 动画-基础

    2024-01-10 06:06:08       41 阅读