【LeetCode 算法笔记】739. 每日温度

目录

问题描述

给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 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]

提示:
1 <= temperatures.length <= 105
30 <= temperatures[i] <= 100

暴力解法

对于每一个温度值,都向后进行扫描,直到找到比这个值更大的值。

python 复制代码
class Solution:
    def dailyTemperatures(self, temperatures: List[int]) -> List[int]:
        res = []
        n = len(temperatures)
        for i in range(n):
            j = 0
            finded = False
            while(i+j < n):
                if temperatures[i] < temperatures[i+j]:
                    finded = True
                    break
                else:
                    j += 1
            res.append(j if finded else 0)
        return res

算法复杂度:

最好的情况下,每一天的温度比前一天更高: O ( N ) O(N) O(N)

最坏情况下,每一天的温度比前一天更低,总共运行 N ∗ ( N − 1 ) / 2 N*(N-1)/2 N∗(N−1)/2 次 : O ( N 2 ) O(N^2) O(N2)

这个方法在 LeetCode 中提交的话,会超时无法通过

先把 下标存到栈里,如果栈顶元素遇到了更高的温度,持续抛出

python 复制代码
class Solution:
    def dailyTemperatures(self, temperatures: List[int]) -> List[int]:
        stack = []
        n = len(temperatures)
        res = [0]*n
        for i in range(n):
            while(stack and temperatures[stack[-1]] < temperatures[i]):
                k = stack.pop()
                res[k] = (i-k)
            stack.append(i)
        return res

算法复杂度: O ( N ) O(N) O(N)

相关推荐
Wect5 小时前
LeetCode 130. 被围绕的区域:两种解法详解(BFS/DFS)
前端·算法·typescript
NAGNIP17 小时前
一文搞懂深度学习中的通用逼近定理!
人工智能·算法·面试
颜酱1 天前
单调栈:从模板到实战
javascript·后端·算法
CoovallyAIHub1 天前
仿生学突破:SILD模型如何让无人机在电力线迷宫中发现“隐形威胁”
深度学习·算法·计算机视觉
CoovallyAIHub1 天前
从春晚机器人到零样本革命:YOLO26-Pose姿态估计实战指南
深度学习·算法·计算机视觉
CoovallyAIHub1 天前
Le-DETR:省80%预训练数据,这个实时检测Transformer刷新SOTA|Georgia Tech & 北交大
深度学习·算法·计算机视觉
CoovallyAIHub1 天前
强化学习凭什么比监督学习更聪明?RL的“聪明”并非来自算法,而是因为它学会了“挑食”
深度学习·算法·计算机视觉
CoovallyAIHub1 天前
YOLO-IOD深度解析:打破实时增量目标检测的三重知识冲突
深度学习·算法·计算机视觉
NAGNIP2 天前
轻松搞懂全连接神经网络结构!
人工智能·算法·面试
NAGNIP2 天前
一文搞懂激活函数!
算法·面试