739 每日温度

739 每日温度

📝 题目描述

难度: 🟡 中等
标签: 数组 单调栈

给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answeri 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。

示例 1:

输入: temperatures = 73,74,75,71,69,72,76,73

输出: 1,1,4,2,1,1,0,0

示例 2:

输入: temperatures = 30,40,50,60

输出: 1,1,1,0

示例 3:

输入: temperatures = 30,60,90

输出: 1,1,0


� 解题思路

设置一个单调栈,并从左往右遍历。

如果栈顶元素大于等于当前的元素,那么压入栈;

否则,说明当前元素为一个更大的数字,将栈中小于该数的元素全部弹出并写入索引之差,然后把当前元素压入栈。

重复以上步骤。


� 代码实现

cpp 复制代码
class Solution {
public:
    vector<int> dailyTemperatures(vector<int>& temperatures) {
        vector<int> res(temperatures.size(),0);
        stack<int> stk;
        for(int i=0;i<temperatures.size();i++){
            while(!stk.empty() &&temperatures[stk.top()]<temperatures[i]){
                res[stk.top()]=i-stk.top();
                stk.pop();
            }
            stk.push(i);
        }
        return res;
    }
};

📊 复杂度分析

每个元素最多入栈+出栈一次,时间复杂度为2n,使用额外的n空间存储结果和单调栈。

  • 时间复杂度: O(n)
  • 空间复杂度: O(n)

日期: 2026-4-29

相关推荐
Lumos18612 分钟前
51单片机从零到实战(完结)——后续学习路线建议
算法
稚南城才子,乌衣巷风流16 分钟前
DFS序详解:原理、应用与实现
算法·深度优先·图论
稚南城才子,乌衣巷风流21 分钟前
动态树(Dynamic Tree)数据结构详解
数据结构·算法
变量未定义~1 小时前
最小生成树1(Prim模板)、最小生成树2(kruskal模板)、最近公共祖先(模板)
算法
这就是佬们吗1 小时前
Python入门⑤-异常处理、文件操作与实战项目
开发语言·数据库·python·算法·pycharm
LONGZETECH1 小时前
新能源汽车充电设备装配与调试仿真教学软件 技术架构与核心实现解析
大数据·算法·3d·unity·架构·汽车
自学小白菜2 小时前
关于提升机器学习算法做预测回归任务精度的方法分享
算法·机器学习·回归·提升精度
学废了wuwu2 小时前
从入门到实战:深入浅出模型压缩三大核心——剪枝、彩票假设与知识蒸馏
人工智能·算法·剪枝
小肝一下2 小时前
3. 单链表
c语言·数据结构·c++·算法·leetcode·链表·dijkstra
劈星斩月2 小时前
监督学习算法 之 决策树
学习·算法·决策树