当前位置: 首页 > news >正文

leetcode0155. 最小栈-medium

1 题目:最小栈

官方标定难度:中

设计一个支持 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.

提示:

− 2 31 < = v a l < = 2 31 − 1 -2^{31} <= val <= 2^{31} - 1 231<=val<=2311
pop、top 和 getMin 操作总是在 非空栈 上调用
push, pop, top, and getMin最多被调用 3 ∗ 1 0 4 3 * 10^4 3104

2 solution

用两个栈,一个存数据,一个存最小值

代码

class MinStack {
public:
    stack<int> min_stack;
    stack<int> my_stack;

    MinStack() {
        min_stack.push(INT32_MAX);
    }

    void push(int val) {
        my_stack.push(val);
        min_stack.push(min(val, min_stack.top()));
    }

    void pop() {
        my_stack.pop();
        min_stack.pop();
    }

    int top() {
        return my_stack.top();
    }

    int getMin() {
        return min_stack.top();
    }
};

结果

在这里插入图片描述

相关文章:

  • CRM软件介绍与10大主流产品选型指南
  • Umi Max 和 Ant Design Pro 的区别
  • [Windows] OfficeAI 助手 v0.3.20(长期免费,2025-03-18 本地支持WPS_Word联动)
  • 深入浅出:Linux Shell 中的条件判断与空变量检查
  • 网页布局思路
  • 【Django】教程-15-注册页面
  • [Effective C++]条款30:透彻了解inlining的里里外外
  • 如何通过简单步骤保护您的网站安全
  • 【Dart语言】七、类修饰符
  • 5️⃣ Coze+AI应用基础教学(2025年全新版本)
  • LLM之Agent(十六)| MCP已“过时”?Google近期推出Agent2Agent 协议 (A2A)
  • 学校安全用电解决电安全隐患-充满活力的校园享受科技进步的便利
  • LangGraph 架构详解
  • 计算机组成原理——CPU与存储器连接例题
  • UML-银行取款序列图
  • 《解锁分布式软总线:构建智能设备统一管理平台》
  • Python装饰器(Decorator)详解
  • 【c】-include经典注入问题
  • Python学习笔记(二)(字符串)
  • 有哪些反爬机制可能会影响Python爬取视频?如何应对这些机制?
  • 网站开发的选题审批表/安徽搜索引擎优化
  • 电子商务网站建设策划报告/seo推广服务
  • 网站设计怎么做链接/图片外链生成工具在线
  • 广告公司名字怎么取/搜索引擎优化的简称是
  • 电商网站页面布局/百度关键词挖掘工具爱站网
  • 网站建设网站备案所需资料/苏州seo公司