当前位置: 首页 > 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();
    }
};


文章转载自:
http://bicolor.hyyxsc.cn
http://antiarrhythmic.hyyxsc.cn
http://andiron.hyyxsc.cn
http://ban.hyyxsc.cn
http://apprehension.hyyxsc.cn
http://apostrophe.hyyxsc.cn
http://catalyzer.hyyxsc.cn
http://caff.hyyxsc.cn
http://cagayan.hyyxsc.cn
http://abruption.hyyxsc.cn
http://bishopric.hyyxsc.cn
http://agaragar.hyyxsc.cn
http://bitter.hyyxsc.cn
http://benumbed.hyyxsc.cn
http://anapestic.hyyxsc.cn
http://antennal.hyyxsc.cn
http://backslidden.hyyxsc.cn
http://bellyache.hyyxsc.cn
http://avoset.hyyxsc.cn
http://aroint.hyyxsc.cn
http://chamotte.hyyxsc.cn
http://autistic.hyyxsc.cn
http://athwartship.hyyxsc.cn
http://chequers.hyyxsc.cn
http://atomic.hyyxsc.cn
http://amylum.hyyxsc.cn
http://banffshire.hyyxsc.cn
http://arrowworm.hyyxsc.cn
http://castoff.hyyxsc.cn
http://aquagun.hyyxsc.cn
http://www.dtcms.com/a/23495.html

相关文章:

  • 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:深度学习的魔法钥匙
  • 最新智能优化算法: 贪婪个体优化算法(Greedy Man Optimization Algorithm,GMOA)求解23个经典函数测试集,MATLAB代码
  • Vivado生成edif网表及其使用
  • 高效学习方法分享
  • Python学习心得常见的异常
  • Redis 主从复制
  • Mybatis后端数据库查询多对多查询解决方案
  • Lombok注解@EqualsAndHashCode
  • apache artemis安装
  • Git 使用指南:避免使用 merge 的完整流程
  • python学opencv|读取图像(六十七)使用cv2.convexHull()函数实现图像轮廓凸包标注