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

算法与数据结构(最小栈)

题目

思路

为了返回栈中的最小元素,我们需要额外维护一个辅助栈 min_stack,它的作用是记录当前栈中的最小值。

min_stack的作用:

 min_stack的栈顶元素始终是当前栈 st 中的最小值。

   每当st中压入一个新元素时,如果这个元素小于等于 min_stack 的栈顶元素,就将它也压入 min_stack。

   每当st中弹出一个元素时,如果这个元素等于 min_stack 的栈顶元素,就将 min_stack 的栈顶元素也会弹出。

代码

class MinStack {
public:
    /** initialize your data structure here. */
    stack<int> st;
    stack<int> min_stack;
    MinStack() {}
    
    void push(int x) {
        st.push(x);
        if(min_stack.empty() || min_stack.top() >= x)
        min_stack.push(x);
    }
    
    void pop() {
        if(min_stack.top() == st.top())
        min_stack.pop();
        st.pop();
    }
    
    int top() {
        return st.top();
    }
    
    int getMin() {
        return min_stack.top();
    }
};

相关文章:

  • Python Cookbook-1.21 在Unicode和普通字符串之间转换
  • 【Python 语法】Python 正则表达式(regular expressions, regex)
  • 代码随想录 第一章 数组 977.有序数组的平方
  • 【拒绝算法PUA】LeetCode 1287. 有序数组中出现次数超过25%的元素
  • 30填学习自制操作系统第二天
  • 从MySQL迁移到PostgreSQL的完整指南
  • 【Elasticsearch】硬件资源优化
  • 下载安装运行测试开源vision-language-action(VLA)模型OpenVLA
  • Git Pull 报错解决方案:fatal: Need to specify how to reconcile divergent branches
  • PHP是如何并行异步处理HTTP请求的?
  • CSS基础入门——盒模型与布局
  • CES Asia 2025“传播势能放大器”:科技与环保的双重盛宴
  • 【gopher的java学习笔记】什么是classLoader
  • 网络工程师 (43)IP数据报
  • FormCreate设计器v5.6发布—AI智能表单助理正式上线!
  • Linux 外设驱动 应用 6 陀螺仪实验
  • 【算法】链表
  • Unity Shader学习6:多盏平行光+点光源 ( 逐像素 ) 前向渲染 (Built-In)
  • Word中接入大模型教程
  • 深度学习框架探秘|Keras:深度学习的魔法钥匙
  • 网络直播间销售玩具盲盒被指侵权,法院以侵犯著作权罪追责
  • 新华每日电讯:博物馆正以可亲可近替代“高冷范儿”
  • 河南一县政府党组成员签订抵制违规吃喝问题承诺书,现场交给县长
  • 河南信阳:对违规吃喝问题不遮丑不护短,露头就打、反复敲打
  • “家国万里时光故事会” 举行,多家庭共话家风与家国情怀
  • 中国青年报:为见义勇为者安排补考,体现了教育的本质目标