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( ...
最新文章
- 【c语言】蓝桥杯算法提高 统计平均成绩
- uboot2014.10移植(一)
- Laravel5.4 使用Carbon人性化显示发表评论中文时间
- [PHP打野] 对pear-FSM的研究(一)基本了解
- 【UVA】10012 - How Big Is It?(暴力)
- 计算机研究生上课时间自由吗,计算机在职研究生面授班主要的上课时间安排是怎样的呢...
- .NET Core + Kubernetes:StatefulSet
- linux modprobe命令参数及用法详解--linux加载模块命令
- 织梦 tags.php静态化,dedecms网站tag标签全部静态化的解决方法
- 问答 请问使用OK(raw:jpg)能返回多张图片吗
- cocos2d-x AssetsManager libcurl使用心得
- H3C nat转换实验
- 【浙江省第16届省赛J:】Welcome Party(并查集+优先队列bfs遍历)
- 谷歌浏览器崩溃设置崩溃_用浏览器崩溃
- 《指数基金投资指南》笔记整理
- 2016-09-01[关于Paint笔触的了解]
- 被带走的机密文件WP
- 字节跳动小程序对接环信IM遇到的问题
- 大数据必学Java基础(五):第一段程序
- Linux下安装window xp虚拟机
热门文章
- 《Adobe Photoshop CS5中文版经典教程(全彩版)》目录—导读
- uniapp应用使用facebook第三方登陆
- GO语言Comma-ok断言
- linux查询网络连接状态,Linux 查看网络连接状态
- *.dfm resource kept;file *.dfm resource discarded
- 篮球比赛表式计时器_篮球比赛24秒倒计时器的设计(word文档)
- Arduino 串行通信之串口通信 UART 原理及释义
- CancelledError: [_Derived_]RecvAsync is cancelled.
- VBA批量OCR识别提取身份证照片信息_以OCR识别为代表的人工智能技术在银行中有哪些应用?...
- 回归平静是一种自我保护