执行结果:

通过

显示详情

执行用时 :9 ms, 在所有 Java 提交中击败了97.24%的用户

内存消耗 :54.8 MB, 在所有 Java 提交中击败了33.92%的用户

题目:

根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用 0 来代替。

例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。

提示:气温 列表长度的范围是 [1, 30000]。每个气温的值的均为华氏度,都是在 [30, 100] 范围内的整数。

思路:

如下图所示,绿色部分区域会给多次遍历,如果我们能减少这部分区域的遍历次数,就能整体提高运算效率。


如果我们先从计算右边,那么我们计算过的位置就不需要重复计算,如图所示:

当前我们需要计算 75 位置,然后向右遍历到 71,因为我们已经计算好了 71 位置对应的值为 2,那么我们就可以直接跳 2 为在进行比较,利用了已经有的结果,减少了遍历的次数。

总的来说就是从右往左遍历,利用已经存在的结果进行跳跃,提高效率。

代码;

class Solution {public int[] dailyTemperatures(int[] T) {int length=T.length;int[] result=new int[length];for (int i = length - 2; i >= 0; i--){for (int j = i + 1; j < length; j+= result[j]){if (T[j] > T[i]) {result[i] = j - i;break;} else if (result[j] == 0) { result[i] = 0;break;}}}return result;}
}

leetcode刷题java之739. 每日温度相关推荐

  1. 【LeetCode】【HOT】739. 每日温度(栈)

    [LeetCode][HOT]739. 每日温度 文章目录 [LeetCode][HOT]739. 每日温度 package hot;import java.util.ArrayDeque; impo ...

  2. leetcode刷题java、c++、go语言三合一版本 谷歌师兄的刷题笔记、东哥的算法小抄、 Guide哥的Java面试突击版

    不久前火爆 GitHub 的 LeetCode 中文刷题手册,分享给大家,让正在找工作的朋友能够快速找到心仪的offer! <LeetCode Cookbook>目前已经收录了 520 道 ...

  3. Leetcode刷题java之3. 无重复字符的最长子串

    执行结果: 通过 显示详情 执行用时 :13 ms, 在所有 Java 提交中击败了49.96% 的用户 内存消耗 :37.5 MB, 在所有 Java 提交中击败了36.47%的用户 题目: 给定一 ...

  4. Leetcode刷题java之1079. 活字印刷

    可参考本博客回溯法专栏的最后一条的回溯法框架 https://blog.csdn.net/qq_41901915/article/details/104113330 执行结果: 通过 显示详情 执行用 ...

  5. Leetcode刷题java之121买股票的最佳时机

    题目: 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润. 注意你不能在买入股票前卖出股票 ...

  6. LeetCode刷题Java——88.合并两个有序数组(简单)

    题目 给你两个按非递减顺序排列的整数数组nums1和nums2,另有两个整数m和n,分别表示nums1和nums2中的元素数目. 请你合并nums2到nums1中,使合并后的数组同样按非递减顺序排列. ...

  7. php算法在线刷题,c,算法_每日一道算法:leetcode 刷题碰到的问题。,c,算法 - phpStudy...

    每日一道算法:leetcode 刷题碰到的问题. 这是题目: Given an unsorted array nums, reorder it such that nums[0] < nums[ ...

  8. Leetcode刷题第1题:两数之和(基于Java语言)

    ** Leetcode刷题第1题:两数之和(基于Java语言) ** 题目: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标 ...

  9. Leetcode刷题 463题:岛屿的周长(基于Java语言)

    ** Leetcode刷题 463题:岛屿的周长(基于Java语言) ** 一. 题目描述: 给定一个包含 0 和 1 的二维网格地图,其中 1 表示陆地 0 表示水域. 网格中的格子水平和垂直方向相 ...

  10. Leetcode刷题 225题:用队列实现栈(基于Java和c++两种语言)

    ** Leetcode刷题 225题:用队列实现栈(基于Java和c++两种语言) ** 题目: 使用队列实现栈的下列操作: push(x) – 元素 x 入栈 pop() – 移除栈顶元素 top( ...

最新文章

  1. sqlserver2000 php5.4,PHP添加Mssql/sqlserver2000扩展,适用于Php5.2/Php5.3/Php5.4
  2. 深入理解Objective-C:Category
  3. 用MsgWaitForMultipleObjects代替WaitForSingleObject和WaitForMultipleObjects()
  4. 第三十五讲:tapestry Ajax zone组件无黄色闪烁的背景
  5. 迈向数据科学的第一步:在Python中支持向量回归
  6. 神奇的css3(2)动画
  7. 乔布斯在斯坦福大学演讲稿英文_西方大文豪最爱的10个英文单词,写尽人世间细腻情感!...
  8. 如果对象的引用被置为null,;垃圾回收器是否会立即释放对象占用的内存?
  9. 华中科技大学标准c语言程序设计上机试题,答案及报告格式,华中科技大学标准C语言程序设计上机试题、答案及报告格式.pdf...
  10. 设计模式 ( 一 ) 单例模式
  11. 2021-01-01
  12. 浙江新华书店的数字化新尝试
  13. 半导体PN结的工作原理
  14. 软件迭代测试是什么工作,快速迭代的测试人员的思考
  15. innobackupex备份与恢复
  16. systemd.timer定时任务
  17. 天池广东工业智造大数据创新大赛--铝型材表面瑕疵识别 --top1方案
  18. 使用后羿采集器采集数据,并导出到MySql数据库中
  19. Hive面试题考点-整理
  20. Linux 常用命令大全(虚拟机)

热门文章

  1. Fibonacci数列(斐波那契数列)
  2. 机器学习之CART树
  3. 首都师范 博弈论 2 2 4划线法
  4. Echarts图表隐藏X轴和Y轴
  5. 微信开放平台、公众平台的区别
  6. java 错误声音播放器_JavaME 声音播放器的使用
  7. python爆破ZIP文件(支持纯数字,数字+字母,密码本)
  8. 大众车机天宝187A Hack笔记
  9. 带通滤波器参数详细推导
  10. 【无标题】计算机网络故障诊断与排除习题集题库及答案