LeetCode热题100-最小栈

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

实现 MinStack 类:

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

需要在常数时间内检索到最小元素栈,所以需要维持一个最小元素栈。

python 复制代码
class MinStack:

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

    def push(self, val: int) -> None:
        self.stack.append(val)
        if not self.min_stack or val <= self.min_stack[-1]:
            self.min_stack.append(val) 

    def pop(self) -> None:
        if self.stack and self.min_stack:
            top_val = self.stack.pop()
            if top_val == self.min_stack[-1]:
                self.min_stack.pop()

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

    def getMin(self) -> int:
        if self.stack and self.min_stack:
            return self.min_stack[-1]
        
相关推荐
长不胖的路人甲4 小时前
斐波那契查找Java 实现 + 完整思路
java·开发语言
祐樹4 小时前
1987年5月25日下午15-17点出生性格、运势和命运
java
电子云与长程纠缠4 小时前
UE中使用TGuardValue与TInlineComponentArray数据结构
开发语言·数据结构·学习·ue5·游戏引擎
正儿八经的少年4 小时前
Spring 事务保证数据一致性
java·数据库·spring
Lakers-245 小时前
1987年5月29日晚上19-21点出生性格、运势和命运
java
AI人工智能+电脑小能手5 小时前
【大白话说Java面试题 第194题】【08_Kafka篇】第10题:简述 Kafka 的 Rebalance 机制?
java·kafka·消费者组·rebalance·分布式消息队列
__log5 小时前
幂等性设计:从“重复提交“到“稳如磐石“的系统防护
java·开发语言·spring boot
spider_xcxc5 小时前
Helm 部署 K8s 集群完整笔记
java·开发语言·kubernetes
祐樹5 小时前
1987年5月23日下午15-17点出生性格、运势和命运
java
zhangjw345 小时前
第35篇:Spring Boot入门:自动配置+快速搭建,简化企业开发
java·spring boot·后端