leetcode 739. 每日温度

题目

核心思路(单调递减栈)

栈的作用 :存储温度数组的索引,且栈内索引对应的温度值保持单调递减。
遍历逻辑

  • 遍历每个温度时,若当前温度 > 栈顶索引的温度 → 栈顶索引的 "下一个更高温度" 就是当前索引,计算距离并弹出栈顶。
  • 重复上述过程直到栈为空 / 当前温度 ≤ 栈顶温度,再将当前索引压入栈。
  • 未找到更高温度的元素:栈中剩余索引(右侧无更高温度),结果置 0。

Java代码实现

java 复制代码
class Solution {
    public int[] dailyTemperatures(int[] temperatures) {
        Deque<Integer> stack = new LinkedList<>();
        int n = temperatures.length;
        int[] ans = new int[n];

        for (int i = 0; i < n; i++) {
            int t = temperatures[i];
            while (!stack.isEmpty() && t > temperatures[stack.peek()]) {
                int idx = stack.pop();
                ans[idx] = i - idx;
            }
            stack.push(i);
        }
        return ans;
    }
}

复杂度分析

  • 时间复杂度:O (n)。每个元素仅入栈和出栈一次,总操作次数为 2n。
  • 空间复杂度:O (n)。最坏情况下(温度严格递减),栈存储所有索引。
相关推荐
NAGNIP几秒前
一文搞懂深度学习中的通用逼近定理!
人工智能·算法·面试
程序员清风6 小时前
程序员兼职必看:靠谱软件外包平台挑选指南与避坑清单!
java·后端·面试
皮皮林5518 小时前
利用闲置 Mac 从零部署 OpenClaw 教程 !
java
颜酱8 小时前
单调栈:从模板到实战
javascript·后端·算法
CoovallyAIHub12 小时前
仿生学突破:SILD模型如何让无人机在电力线迷宫中发现“隐形威胁”
深度学习·算法·计算机视觉
CoovallyAIHub12 小时前
从春晚机器人到零样本革命:YOLO26-Pose姿态估计实战指南
深度学习·算法·计算机视觉
CoovallyAIHub12 小时前
Le-DETR:省80%预训练数据,这个实时检测Transformer刷新SOTA|Georgia Tech & 北交大
深度学习·算法·计算机视觉
CoovallyAIHub12 小时前
强化学习凭什么比监督学习更聪明?RL的“聪明”并非来自算法,而是因为它学会了“挑食”
深度学习·算法·计算机视觉
CoovallyAIHub12 小时前
YOLO-IOD深度解析:打破实时增量目标检测的三重知识冲突
深度学习·算法·计算机视觉
华仔啊13 小时前
挖到了 1 个 Java 小特性:var,用完就回不去了
java·后端