当前位置:网站首页>【Hot100】739. 每日溫度
【Hot100】739. 每日溫度
2022-07-06 06:50:00 【王六六的IT日常】
739. 每日溫度
給定一個整數數組 temperatures ,錶示每天的溫度,返回一個數組 answer ,其中 answer[i] 是指對於第 i 天,下一個更高溫度出現在幾天後。如果氣溫在這之後都不會昇高,請在該比特置用 0 來代替。
輸入: temperatures = [73,74,75,71,69,72,76,73]
輸出: [1,1,4,2,1,1,0,0]
題目理解:
對於輸入 73,它需要 經過一天 才能等到溫度的昇高,也就是在第二天的時候,溫度昇高到 74 ,所以對應的結果是 1。
對於輸入 74,它需要 經過一天 才能等到溫度的昇高,也就是在第三天的時候,溫度昇高到 75 ,所以對應的結果是 1。
對於輸入 75,它經過 1 天後發現溫度是 71,沒有超過它,繼續等,一直 等了四天,在第七天才等到溫度的昇高,溫度昇高到 76 ,所以對應的結果是 4 。
對於輸入 71,它經過 1 天後發現溫度是 69,沒有超過它,繼續等,一直 等了兩天,在第六天才等到溫度的昇高,溫度昇高到 72 ,所以對應的結果是 2 。
對於輸入 69,它 經過一天 後發現溫度是 72,已經超過它,所以對應的結果是 1 。
對於輸入 72,它 經過一天 後發現溫度是 76,已經超過它,所以對應的結果是 1 。
對於輸入 76,後續 沒有溫度 可以超過它,所以對應的結果是 0 。
對於輸入 73,後續 沒有溫度 可以超過它,所以對應的結果是 0 。
想法:針對每個溫度值 向後進行依次搜索 ,找到比當前溫度更高的值,這是最容易想到的辦法。
原理:是從左到右除了最後一個數其他所有的數都遍曆一次,最後一個數據對應的結果肯定是 0,就不需要計算。
遍曆的時候,每個數都去向後數,直到找到比它大的數,數的次數就是對應輸出的值。
class Solution {
public int[] dailyTemperatures(int[] temperatures) {
int len = temperatures.length;
int[] res = new int[len];
for(int i=0;i<len;i++){
int cur = temperatures[i];
if(cur < 100){
for(int j=i+1;j<len;j++){
if(temperatures[j] > cur){
res[i] = j-i;
break;
}
}
}
}
return res;
}
}
用棧來解决:
遞减棧 :棧裏只有遞减元素。
遍曆整個數組,如果棧不空,且當前數字大於棧頂元素,那麼如果直接入棧的話就不是 遞减棧 ,所以需要取出棧頂元素,由於當前數字大於棧頂元素的數字,而且一定是第一個大於棧頂元素的數,直接求出下標差就是二者的距離。
繼續看新的棧頂元素,直到當前數字小於等於棧頂元素停止,然後將數字入棧,這樣就可以一直保持遞减棧,且每個數字和第一個大於它的數的距離也可以算出來。
class Solution {
public int[] dailyTemperatures(int[] T) {
Stack<Integer> stack = new Stack<>();
int length = T.length;
int[] result = new int[length];
for (int i = 0; i < length; i++) {
while (!stack.isEmpty() && T[i] > T[stack.peek()]) {
int pre = stack.pop();
result[pre] = i - pre;
}
stack.add(i);
}
return result;
}
}
边栏推荐
- Office-DOC加载宏-上线CS
- Advanced MySQL: Basics (1-4 Lectures)
- 利用快捷方式-LNK-上线CS
- Today's summer solstice
- [English] Grammar remodeling: the core framework of English Learning -- English rabbit learning notes (1)
- Biomedical localization translation services
- 26岁从财务转行软件测试,4年沉淀我已经是25k的测开工程师...
- 【每日一题】729. 我的日程安排表 I
- 19.段页结合的实际内存管理
- CS-证书指纹修改
猜你喜欢
医疗软件检测机构怎么找,一航软件测评是专家
电子书-CHM-上线CS
[unity] how to export FBX in untiy
云上有AI,让地球科学研究更省力
Fedora/REHL 安装 semanage
CS通过(CDN+证书)powershell上线详细版
ML之shap:基于adult人口普查收入二分类预测数据集(预测年收入是否超过50k)利用Shap值对XGBoost模型实现可解释性案例之详细攻略
机器人类专业不同层次院校课程差异性简述-ROS1/ROS2-
[English] Grammar remodeling: the core framework of English Learning -- English rabbit learning notes (1)
My seven years with NLP
随机推荐
Explain in detail the functions and underlying implementation logic of the groups sets statement in SQL
AttributeError: Can‘t get attribute ‘SPPF‘ on <module ‘models.common‘ from ‘/home/yolov5/models/comm
Apache dolphin scheduler source code analysis (super detailed)
[Yu Yue education] Dunhuang Literature and art reference materials of Zhejiang Normal University
Bitcoinwin (BCW): the lending platform Celsius conceals losses of 35000 eth or insolvency
At the age of 26, I changed my career from finance to software testing. After four years of precipitation, I have been a 25K Test Development Engineer
(practice C language every day) reverse linked list II
自动化测试环境配置
Do you really know the use of idea?
How to translate professional papers and write English abstracts better
Leetcode daily question (971. flip binary tree to match preorder traversal)
Bitcoinwin (BCW): 借贷平台Celsius隐瞒亏损3.5万枚ETH 或资不抵债
【刷题】怎么样才能正确的迎接面试?
CS通过(CDN+证书)powershell上线详细版
My seven years with NLP
翻译影视剧字幕,这些特点务必要了解
Suspended else
生物医学本地化翻译服务
Chinese English comparison: you can do this Best of luck
Every API has its foundation when a building rises from the ground