【LeetCode】最小栈


一、题目

设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。

实现 MinStack 类:

MinStack() 初始化堆栈对象。
void push(int val) 将元素val推入堆栈。
void pop() 删除堆栈顶部的元素。
int top() 获取堆栈顶部的元素。
int getMin() 获取堆栈中的最小元素。

示例 1:

输入:
[“MinStack”,“push”,“push”,“push”,“getMin”,“pop”,“top”,“getMin”]
[[],[-2],[0],[-3],[],[],[],[]]

输出:
[null,null,null,null,-3,null,0,-2]

解释:
MinStack minStack = new MinStack();
minStack.push(-2);
minStack.push(0);
minStack.push(-3);
minStack.getMin(); --> 返回 -3.
minStack.pop();
minStack.top(); --> 返回 0.
minStack.getMin(); --> 返回 -2.

提示:

-231 <= val <= 231 - 1
pop、top 和 getMin 操作总是在 非空栈 上调用
push, pop, top, and getMin最多被调用 3 * 104 次


二、解法

也是用栈,记录数字的同时,记录目前所知道的最小值


完整代码

class MinStack:

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

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

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

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

    def getMin(self) -> int:
        return self.stk[-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. LeetCode

    2024-07-15 11:20:03       24 阅读
  2. LeetCode 155:

    2024-07-15 11:20:03       51 阅读
  3. Leetcode 155. 【中等】

    2024-07-15 11:20:03       29 阅读

最近更新

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

    2024-07-15 11:20:03       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-15 11:20:03       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-15 11:20:03       62 阅读
  4. Python语言-面向对象

    2024-07-15 11:20:03       72 阅读

热门阅读

  1. Ionic 加载动画

    2024-07-15 11:20:03       20 阅读
  2. Yolo,输出的参数的含义

    2024-07-15 11:20:03       31 阅读
  3. 切换node版本

    2024-07-15 11:20:03       22 阅读
  4. 墨烯的C语言技术栈-C语言基础-014

    2024-07-15 11:20:03       23 阅读
  5. 从零手写实现 nginx-28-error pages 指令

    2024-07-15 11:20:03       26 阅读
  6. 什么是JVM进程

    2024-07-15 11:20:03       28 阅读
  7. PHP7.4编译安装

    2024-07-15 11:20:03       21 阅读
  8. GBNF Guide

    2024-07-15 11:20:03       24 阅读
  9. IT6161: MIPI to HDMI Converter

    2024-07-15 11:20:03       29 阅读
  10. 2718. 查询后矩阵的和

    2024-07-15 11:20:03       24 阅读