leetcode-155最小栈(历史最值)「建议收藏」

leetcode-155最小栈(历史最值)「建议收藏」原题链接设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。示例:输入:[“MinStack”,“push”,“push”,“push”,“getMin”,“pop”,“top”,“getMin”][[],[-2],[0],[-3],[],[],[],[]]输出:[null,null,null,nul

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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

push(x) —— 将元素 x 推入栈中。
pop() —— 删除栈顶的元素。
top() —— 获取栈顶元素。
getMin() —— 检索栈中的最小元素。

示例:

输入:
[“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.

提示:

pop、top 和 getMin 操作总是在 非空栈 上调用。
题解
新开一个栈,存储历史最小值

class MinStack { 
   
public:
    /** initialize your data structure here. */
    stack<int>s;
    stack<int>m;
    MinStack() { 
   
    }
    
    void push(int val) { 
   
        s.push(val);
        if(!m.empty())m.push(min(val,m.top()));
        else m.push(val);
    }
    
    void pop() { 
   
        s.pop();
        m.pop();
    }
    
    int top() { 
   
        return s.top();
    }
    
    int getMin() { 
   
        return m.top();
    }
};

/** * Your MinStack object will be instantiated and called as such: * MinStack* obj = new MinStack(); * obj->push(val); * obj->pop(); * int param_3 = obj->top(); * int param_4 = obj->getMin(); */
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168747.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月8日 下午2:36
下一篇 2022年8月8日 下午2:46


相关推荐

  • 哈希函数和哈希表

    哈希函数和哈希表哈希函数和哈希表 1 什么是哈希函数它是一种映射关系 它可以把任意长度的输入映射到任意一个固定长度的整数值 也称为散列函数 其值是十六进制的数 说白了 哈希函数就是用来将 key value 结构中关键字值转换为数组的下标的函数 一般都是通过取模 而且这样子在数据量很大的情况下一般是均匀分布的 然后将该结构存放到数组中去 然后这个数组就叫做哈希表 这个固定长度不是说所有长度的输入获取到的整数

    2025年6月26日
    4
  • DeepSeek+Notion超详细教程,手把手教你搭建专属AI知识库

    DeepSeek+Notion超详细教程,手把手教你搭建专属AI知识库

    2026年3月16日
    3
  • rk3288的SDK修复cm3218光敏驱动bug「建议收藏」

    rk3288的SDK修复cm3218光敏驱动bug

    2022年2月4日
    53
  • JS页面跳转页面大全

    JS页面跳转页面大全JS 页面跳转大全所谓的 js 页面跳转就是利用 javesrcipt 对打开的页面 ULR 进行跳转 如我们打开的是 A 页面 通过 javsrcipt 脚本就会跳转到 B 页面 目前很多垃圾站经常用 js 跳转将正常页面跳转到广告页面 当然也有一些网站为了追求吸引人的视觉效果 把一些栏目链接做成 js 链接 但这是一个比较严重的蜘蛛陷阱 无论是 SEO 人员还是网站设计人员应当尽力避免 常用的 JS 页面跳转代码调用大全 马海祥

    2026年3月17日
    2
  • VC6.0建立控制台程序实现PDA应用

    VC6.0建立控制台程序实现PDA应用

    2022年1月31日
    65
  • Homebrew安装redis

    Homebrew安装redis1 打开终端 输入命令 安装特定版本加上 版本号 例如 brewinstallr 3 2 默认是安装最新版本 brewinstallr 等待安装完成 3 修改 redis conf 文件快捷键 shift command G 输入 usr local etc 编辑 redis conf 文件 搜索 daemonizeno 将 no 改为 yes

    2026年3月16日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号