当前位置: 首页 > news >正文

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;//这行代码完成整个函数。它将我们的结果数组作为输出返回给调用者。
http://www.cnnetsun.cn/news/9947.html

相关文章:

  • Universal x86 Tuning Utility终极指南:轻松解锁硬件性能的秘密武器
  • 基于三电平逆变器的有源滤波APF设计及Matlab/Simulink仿真
  • NVIDIA显卡深度调优指南:解锁隐藏性能的完全攻略
  • B站视频转文字完整指南:一键提取语音内容神器
  • 5步搞定Blender 3MF插件:从安装到高效3D打印工作流
  • Vue-Office Excel预览异常排查:从空白页面到完美渲染的完整指南
  • SQL SELECT:向数据库“点菜”的神奇指令
  • 深度学习之常用激活函数
  • 2023年IEEE TIV,GA-LNS算法+直升机救援调度,深度解析+性能实测
  • xshell的一个会话的连接的ip地址在哪里修改?
  • 【活动总结】创药沙龙第一期:ADC药物研发的挑战与机遇成功举办
  • 如何用免费工具3分钟终极优化Windows右键菜单:告别杂乱,提升300%操作效率
  • Day25
  • 工具 | netcat, netstat
  • AI的下半场:智能体(Agent)将如何重塑我们所有的应用
  • soular全面介绍(4) - 通过soular工作台聚合TikLab所有工具链
  • R-Zero:从零数据自进化推理大语言模型
  • 弹~性布局
  • Wan2.2-T2V-A14B在地震波传播模拟教学中的科学准确性
  • Day 36 MLP神经网络的训练
  • B站视频下载终极指南:免费工具DownKyi完整使用教程
  • 搞懂“元数据”:给数据办一张“身份证”
  • 04_C 语言进阶之避坑指南:多重 if-else 及多重条件混乱 —— 让逻辑不再 “绕迷宫”
  • 量子计算开发者必看(VSCode性能调优实战手册)
  • Android嵌套滑动冲突完全解析:从原理到实战解决方案
  • ASTM D4169-DC13 标准,包装完整性
  • Linux新手必学:tail命令图解指南
  • 19、利用Scapy和Python进行网络数据包处理与扫描
  • 性能测试里MySQL的锁
  • OBS教程:OBS实时字幕插件如何下载?直播字幕翻译怎么弄?