首页 > 其他分享 >每日温度(单调栈)

每日温度(单调栈)

时间:2025-01-10 20:46:22浏览次数:1  
标签:int 每日 st temperatures && ans 单调 温度

题目链接:https://leetcode.cn/problems/daily-temperatures/

题意:

给你一个每日气温数组,请你确定每个位置右边是否比自己大的元素,如果无,返回0。否则,返回两者下标之差

思路:

单调栈(这就好似给了数组中每个位置做波峰或波谷的机会)(ps:单调栈一定存的是下标i)


class Solution {
public:
    vector<int> dailyTemperatures(vector<int>& temperatures) {
        int st[100005];
        int n=temperatures.size();
        vector<int>ans(n);
        int r=0,cur;
  
        for(int i=0;i<n;i++)
        {
            while(r>0&&temperatures[st[r-1]]<=temperatures[i])
            {
                cur = st[--r];
                ans[cur]=i;
            }
            st[r++]=i;
        }
        while(r>0)
        {
            ans[st[--r]]=0;
        }
        for(int i=n-2;i>=0;i--)
        {
            if(ans[i]!=0&&temperatures[ans[i]]==temperatures[i])
            {
                ans[i]=ans[ans[i]];
            }
        }
        for(int i=0;i<n;i++)
        {
           if(ans[i])ans[i]=ans[i]-i;
        }
        return ans;
    }
};

标签:int,每日,st,temperatures,&&,ans,单调,温度
From: https://www.cnblogs.com/benscode/p/18664657

相关文章

  • 单调栈板子
    单调栈用于求解数组每个位置上左边/右边离自己最近的且严格小于/大于自己位置上的数的位置时间复杂度O(N)(每个元素下标进栈一次出栈一次)元素下标能表示的含义比元素本身要多(ps:注意数组长度,过大就要开到全局变量中,否则异常退出orz)方法(求每个位置上离自己最近且严格小于自己......
  • 12月17日每日总结
    今日主要学习了图中寻找最小生成树的算法:克鲁斯卡尔算法和普利姆算法克鲁斯卡尔算法:构建边结构体:用于存储图中的边信息,包括边的两个端点以及边的权值。typedefstructEdge{intsrc;intdest;intweight;}Edge;对边进行排序:可以使用C语言标准库中的qsort函数来实现......
  • 【每日一题】20250110
    【每日一题】从区间\([0,1]\)随机抽取\(2n\)个数\(x_1,x_2,\ldots,x_n,y_1,y_2,\ldots,y_n\),构成\(n\)个数对\((x_1,y_1)\),\((x_2,y_2),\ldots\),\((x_n,y_n)\),其中两数的平方和小于\(1\)的数对共有\(m\)个,则用随机模拟的方法得到的圆周率\(\pi\)的近......
  • iMessage群发:IM群发工具实现国际短信大量批量群发,每日发送百万短信
    在当今全球化的商业环境中,企业需要寻找更高效的方式与世界各地的客户建立联系。iMessage作为苹果生态系统中不可或缺的一部分,以其高度的安全性和优秀的用户体验著称。然而,对于想要通过iMessage进行大规模营销的企业来说,传统的一对一消息传递方式显然无法满足需求。本章将探讨如......
  • 高级java每日一道面试题-2025年01月06日-并发篇- 什么是Daemon线程?它有什么意义?
    如果有遗漏,评论区告诉我进行补充面试官:什么是Daemon线程?它有什么意义?我回答:在Java高级面试中,Daemon线程是一个重要的并发编程概念。以下是对Daemon线程的详细解释及其意义:一、Daemon线程的定义Daemon线程,也称为守护线程,是Java中一种特殊类型的线程。它主要在后台......
  • 高级java每日一道面试题-2025年01月07日-事务篇-事务三要素是什么 ?
    如果有遗漏,评论区告诉我进行补充面试官:事务三要素是什么?我回答:在Java高级面试中,当提到“事务三要素”时,通常是指数据库事务的三个核心属性,即:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)。这三个属性加上持久性(Durability)共同构成了ACID属性,这是确保......
  • 模拟ic入门——设计一个带隙基准Bandgap(三)高阶温度补偿与启动电路设计
    上一节我们介绍了Bandgap相关的参数,以及做了其中一个经典电路的电压模仿真,但如果对于温度系数有较高的要求,可以进行高阶温度补偿,本节我们来介绍高阶温度补偿,以及一些启动电路的设计,会附上一些经典的论文供大家学习一、电流模Bandgap首先我们进行电流模bandgap的仿真,运放我采......
  • 【每日一题】20250109
    【每日一题】一质量为\(m\)的物块恰好静止在倾角为\(\theta\)的斜面上,现对物块施加一个竖直向下的恒力\(F\),如图所示.则物块A.仍处于静止状态B.沿斜面加速下滑C.受到的摩擦力不变D.受到的合外力增大2.(14分)\(\hspace{0.7cm}\)(1)开普勒行星运动第三定律指出:行星绕......
  • 河洛理数【陈抟】每月月卦推演每日运卦
        话不多说,这篇来教大家如何在前文说的代表月运的基础卦上进行当月日卦的推演方式。老样子,我们还是按照书中举得例子卦在这边进行一步步的推演,最后做总结。    假设当月月卦是即济卦,月爻在二爻,如图所示()。Step1:从月卦爻下一爻开始,自下而上,进行五个爻的爻变,......
  • 利用Python实现温度转换 II
    温度的刻画有两个不同体系:摄氏度(Celsius)和华氏度(Fahrenheit)。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪......