leetcode刷题java之739. 每日温度
执行结果:
通过
显示详情
执行用时 :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. 每日温度相关推荐
- 【LeetCode】【HOT】739. 每日温度(栈)
[LeetCode][HOT]739. 每日温度 文章目录 [LeetCode][HOT]739. 每日温度 package hot;import java.util.ArrayDeque; impo ...
- leetcode刷题java、c++、go语言三合一版本 谷歌师兄的刷题笔记、东哥的算法小抄、 Guide哥的Java面试突击版
不久前火爆 GitHub 的 LeetCode 中文刷题手册,分享给大家,让正在找工作的朋友能够快速找到心仪的offer! <LeetCode Cookbook>目前已经收录了 520 道 ...
- Leetcode刷题java之3. 无重复字符的最长子串
执行结果: 通过 显示详情 执行用时 :13 ms, 在所有 Java 提交中击败了49.96% 的用户 内存消耗 :37.5 MB, 在所有 Java 提交中击败了36.47%的用户 题目: 给定一 ...
- Leetcode刷题java之1079. 活字印刷
可参考本博客回溯法专栏的最后一条的回溯法框架 https://blog.csdn.net/qq_41901915/article/details/104113330 执行结果: 通过 显示详情 执行用 ...
- Leetcode刷题java之121买股票的最佳时机
题目: 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润. 注意你不能在买入股票前卖出股票 ...
- LeetCode刷题Java——88.合并两个有序数组(简单)
题目 给你两个按非递减顺序排列的整数数组nums1和nums2,另有两个整数m和n,分别表示nums1和nums2中的元素数目. 请你合并nums2到nums1中,使合并后的数组同样按非递减顺序排列. ...
- php算法在线刷题,c,算法_每日一道算法:leetcode 刷题碰到的问题。,c,算法 - phpStudy...
每日一道算法:leetcode 刷题碰到的问题. 这是题目: Given an unsorted array nums, reorder it such that nums[0] < nums[ ...
- Leetcode刷题第1题:两数之和(基于Java语言)
** Leetcode刷题第1题:两数之和(基于Java语言) ** 题目: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标 ...
- Leetcode刷题 463题:岛屿的周长(基于Java语言)
** Leetcode刷题 463题:岛屿的周长(基于Java语言) ** 一. 题目描述: 给定一个包含 0 和 1 的二维网格地图,其中 1 表示陆地 0 表示水域. 网格中的格子水平和垂直方向相 ...
- Leetcode刷题 225题:用队列实现栈(基于Java和c++两种语言)
** Leetcode刷题 225题:用队列实现栈(基于Java和c++两种语言) ** 题目: 使用队列实现栈的下列操作: push(x) – 元素 x 入栈 pop() – 移除栈顶元素 top( ...
最新文章
- sqlserver2000 php5.4,PHP添加Mssql/sqlserver2000扩展,适用于Php5.2/Php5.3/Php5.4
- 深入理解Objective-C:Category
- 用MsgWaitForMultipleObjects代替WaitForSingleObject和WaitForMultipleObjects()
- 第三十五讲:tapestry Ajax zone组件无黄色闪烁的背景
- 迈向数据科学的第一步:在Python中支持向量回归
- 神奇的css3(2)动画
- 乔布斯在斯坦福大学演讲稿英文_西方大文豪最爱的10个英文单词,写尽人世间细腻情感!...
- 如果对象的引用被置为null,;垃圾回收器是否会立即释放对象占用的内存?
- 华中科技大学标准c语言程序设计上机试题,答案及报告格式,华中科技大学标准C语言程序设计上机试题、答案及报告格式.pdf...
- 设计模式 ( 一 ) 单例模式
- 2021-01-01
- 浙江新华书店的数字化新尝试
- 半导体PN结的工作原理
- 软件迭代测试是什么工作,快速迭代的测试人员的思考
- innobackupex备份与恢复
- systemd.timer定时任务
- 天池广东工业智造大数据创新大赛--铝型材表面瑕疵识别 --top1方案
- 使用后羿采集器采集数据,并导出到MySql数据库中
- Hive面试题考点-整理
- Linux 常用命令大全(虚拟机)