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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • CentOS7 部署 RAID 磁盘阵列

    CentOS7 部署 RAID 磁盘阵列RAID(RedundantArrayoflndependentDisk独立冗余磁盘阵列)就是把多块独立的物理磁盘按不同的方式组合起来形成一个磁盘组(逻辑硬盘)。从而提供比单个磁盘更高的存储性能和提供数据备份技术。

    2022年5月1日
  • EasyPlayer实现视频的局部缩放、平移功能(类似快手视频)「建议收藏」

    EasyPlayer实现视频的局部缩放、平移功能(类似快手视频)「建议收藏」EasyPlayer实现视频的局部缩放、平移功能(类似快手视频)在预览图片的时候,利用手势控制图片的缩放、平移,已经是智能手机时代最基本的操作。而对于视频,很少有播放器支持这样的操作。实际上,在观看视频的时候,我们可能会想观看某个区域的局部细节,需要把该区域放大来观看,EasyPlayer播放器基于这样的需求,提供了局部放大的功能。感谢github上开源库PhotoView,它在ImageView

    2022年6月29日
  • kmo检验和bartlett球形检验_轻松搞懂:球形压力容器如何焊接安装?[通俗易懂]

    kmo检验和bartlett球形检验_轻松搞懂:球形压力容器如何焊接安装?[通俗易懂]球形压力容器简称“球罐”,与其他形式的容器相比,其重量与体积之比最小,受力均匀,可以承受较高的压力,是工业中普遍应用的大容积定容储气罐。在冶金工厂中,球罐常用于贮存氧气、氮气及保护气体等,以供氧气炼钢、富氧鼓风、轧钢热处理炉及煤气置换等生产所需用气。球罐由球体壳板(分赤道带、下温带、下寒带、上温带、上寒带和极顶板)、支柱、操作平台及管件等组成。球罐按其结构型式分为桔瓣式和混合式两种。根据…

    2022年6月29日
  • 如何查找网上的资源

    如何查找网上的资源一:电驴近期添加了版权                                                http://www.verycd.com/绕过验证的方法是 在verycd网址的”verycd.”与”com”之间,加上“gdajie.”,回车ed2k:

    2022年7月15日
  • data grip 激活码-激活码分享2022.02.20

    (data grip 激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~HC…

    2022年4月1日
  • python激活码全家桶(注册激活)

    (python激活码全家桶)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~MLZPB5EL5Q-eyJsaWNlbnNlSWQiOi…

    2022年3月21日

发表回复

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

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