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]
        
相关推荐
t***5442 小时前
如何在现代C++中更有效地应用这些模式
java·开发语言·c++
不知名的忻2 小时前
Morris遍历(力扣第99题)
java·算法·leetcode·morris遍历
daidaidaiyu2 小时前
一文学习入门 ThingsBoard 开源物联网平台
java·mqtt·spring
状元岐2 小时前
C#反射从入门到精通
java·javascript·算法
亚历克斯神2 小时前
Elasticsearch 全文搜索实战:构建企业级搜索引擎
java·spring·微服务
亚历克斯神2 小时前
Spring Boot 与 Elasticsearch 8.0 集成
java·spring·微服务
_深海凉_3 小时前
LeetCode热题100-除了自身以外数组的乘积
数据结构·算法·leetcode
星晨雪海4 小时前
Lombok 注解使用场景终极总结
java·数据库·mysql
xiaotao1314 小时前
01-编程基础与数学基石: Python核心数据结构完全指南
数据结构·人工智能·windows·python