首页 > 其他分享 >剑指 Offer 30. 包含min函数的栈(简单)

剑指 Offer 30. 包含min函数的栈(简单)

时间:2023-07-31 21:48:48浏览次数:32  
标签:min MinStack Offer 30 st1 st2 stack

题目:

class MinStack {
public:
    stack<int> st1;           //维护原栈
    stack<int> st2;           //维护最小值的栈
    /** initialize your data structure here. */
    MinStack() {
        
    }
    
    void push(int x) {
        st1.push(x);
        if(st2.empty()||x<st2.top()){
            st2.push(x);
        }else st2.push(st2.top());       //如果插入元素大于st2的栈顶,那么再插入一个栈顶元素:1.确保st1和st2能同步pop  2.确保栈顶位置始终为最小值
    }
    
    void pop() {   
        st1.pop();
        st2.pop();              //要考虑有可能是最小元素被pop了
    }
    
    int top() {
        return st1.top();
    }
    
    int min() {
        return st2.top();
    }
};

标签:min,MinStack,Offer,30,st1,st2,stack
From: https://www.cnblogs.com/fly-smart/p/17594546.html

相关文章

  • 30号个人赛
    比赛链接:https://www.luogu.com.cn/contest/121860#descriptionA-KUTEVI解题思路一道初见比较难入手的题,觉得一时间找不到合适的算法,但是仔细观察之后会发现他的题目描述和完全背包有些相似,而问法和之前做过的一道布尔类型的dp题很像;所以我们状态表示dp[i]表示......
  • 剑指offer_20230731
    剑指Offer07.重建二叉树题目说明输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。解题思路可以通过前序遍历的数组获取每个子树的根节点,并在中序遍历的数组中找到根节点对应的位置,然后就可......
  • 暑假周记(7.30)
    Date类Date:精确到毫秒,代表特定的瞬间SimpleDateFormat:格式和解析日期的类案例演示Dated1=newDate();//获取当前系统时间System.out.println("当前日期="+d1);Dated2=newDate(9234567);//通过指定毫秒数得到时间System.out.println("d2="+d2);//获取某个时间对......
  • 第30天
    一、存储手机对象packagePhone;publicclassPhoneTest{publicstaticvoidmain(String[]args){Phone[]arr=newPhone[3];Phonep1=newPhone("小米",2567,"幽芒");Phonep2=newPhone("华为",23451,&qu......
  • HTML 快速301到其他页面
    要实现HTML页面以最快速度执行301跳转到其他页面,您可以在`<head>`部分使用`http-equiv`属性与`refresh`实现。以下是一个示例HTML文件,该文件会立即执行301永久重定向到指定URL:```html<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv=&qu......
  • R语言代做编程辅导STA305/1004 Homework 2(附答案)
    全文链接:https://tecdat.cn/?p=33341TheNHEFSsurveywasdesignedtoinvestigatetherelationshipsbetweenclinical,nutritional,andbehaviouralfactorsassessedinthefirstNationalHealthandNutritionExaminationSurveyNHANESIandsubsequentmorbidity,......
  • 【867】pgAdmin4 无法加载 loading 的问题解决
    ref:LoadingpgAdmin4v7.4...whileopeningpgAdminIhadthesameproblemwheninstallingpgAdminviathepostgresql-15.3-3-windows-x64installer.Solution:uninstallPostgreSQL;reinstallPostgreSQLbutinthecomponentsselection,uncheckPGAdmin;......
  • C#.NET 国密SM4对称加解密 与JAVA互通 ver:20230731
    C#.NET国密SM4对称加解密与JAVA互通ver:20230731 .NET环境:.NET6控制台程序(.netcore)。JAVA环境:JAVA8,带maven的JAVA控制台程序。 简要解析:1:加密的KEY、明文等输入参数都需要string转byte[],要约定好编码,如:UTF8。2:加密后的输出参数:byte[],在传输时需要转为stri......
  • moment 近30天 近1年 近7天
      if(i==1){//近30天letd30=[...newArray(30)].map((i,idx)=>this.moment().startOf("day").subtract(idx,"days").format('MM-DD')).reverse();......
  • 关于spark写clickhouse出现 too many parts(300)错误的最佳解决方式
    出现这个问题的根本原因是clickhouse插入速度超过clickhouse的文件合并速度(默认300)解决方式如下 觉得好用记得点个关注或者赞哈......