news 2026/6/10 13:28:05

LeetCode热题100--739. 每日温度--中等

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LeetCode热题100--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]

题解

classSolution{publicint[]dailyTemperatures(int[]T){intlength=T.length;int[]result=newint[length];//从右向左遍历for(inti=length-2;i>=0;i--){// j+= result[j]是利用已经有的结果进行跳跃for(intj=i+1;j<length;j+=result[j]){if(T[j]>T[i]){result[i]=j-i;break;}elseif(result[j]==0){//遇到0表示后面不会有更大的值,那当然当前值就应该也为0result[i]=0;break;}}}returnresult;}}

解析

出自:每日温度 - Java

publicint[]dailyTemperatures(int[]T){...}//定义一个方法,它接受一个整型数组并返回另一个整型数组。intlength=T.length;int[]result=newint[length];//初始化我们的"result"数组,并给它分配输入数据的大小和维度。for(inti=length-2;i>=0;i--){...}//我们反着读取我们的"T"数组,从最后一个元素到第一个。这是为了能够利用我们已经做过的计算来跳过我们不需要再次做的计算(例如在同一迭代中找出更大的值的检查和赋值)。for(intj=i+1;j<length;j+=result[j]){...}//这个循环试图找到T中的下一个较大的气温,它使用了我们已经计算过的值来跳过某些索引。我们每次增加`result[j]`是基于前面的结果(可能对同一迭代来说可能是零)if(T[j]>T[i]){...}//如果当前的'j'索引上的值大于我们的'i'索引,我们计算出间隔并将其赋给我们的result数组中的'i'索引。elseif(result[j]==0){...}//否则如果在接下来的索引上找不到更大的值(前面的循环已经处理了这个情况),我们认为该天的温度"没有等待更多的天数".returnresult;//这行代码完成整个函数。它将我们的结果数组作为输出返回给调用者。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 0:46:45

【量子计算环境搭建终极指南】:手把手教你构建高效Docker镜像

第一章&#xff1a;量子计算环境的 Docker 镜像构建在开发和测试量子算法时&#xff0c;构建一致且可复现的运行环境至关重要。Docker 提供了一种轻量级的容器化解决方案&#xff0c;能够封装包括量子计算框架、依赖库和系统工具在内的完整运行时环境。通过定义 Dockerfile&…

作者头像 李华
网站建设 2026/6/10 13:57:20

单日百款上新!我们如何用AI将电商“测款”视觉成本控制在1块钱?

视觉测款&#xff0c;这个曾经让我们中小卖家又爱又怕的环节&#xff0c;终于迎来了它的效率革命。曾经&#xff0c;上新测款对我们来说是一场豪赌。提前两周预约模特和摄影师&#xff0c;精心布置影棚&#xff0c;一款服装从拍摄到精修出图至少需要三天。如果测款成功自然值得…

作者头像 李华
网站建设 2026/6/10 13:18:22

dentry 和 slab的关系

目录标题 ✅ 概览&#xff08;一句话版本&#xff09;1) dentry 的内部&#xff08;数据结构与生命周期 — 很重要&#xff09;struct dentry&#xff08;关键字段与含义&#xff09;dentry 类型生命周期&#xff08;核心&#xff09; 2) slab allocator&#xff08;SLAB/SLUB/…

作者头像 李华
网站建设 2026/6/9 23:21:16

零基础学渗透测试?7 款最佳工具详解,从入门到精通,一篇收藏够用

渗透测试工具是模拟对计算机系统、网络或 Web 应用程序的网络攻击的软件应用程序&#xff0c;它们的作用是在实际攻击者之前发现安全漏洞。它们可以作为系统的压力测试&#xff0c;揭示哪些区域可能会受到真正的威胁。 本文我将介绍七款最佳的渗透测试工具。 01 Kali Linux …

作者头像 李华