leetcode 739:每日溫度(棧)
根據每日 氣溫 列表,請重新生成乙個列表,對應位置的輸出是需要再等待多久溫度才會公升高超過該日的天數。如果之後都不會公升高,請在該位置用 0 來代替。
例如,給定乙個列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的輸出應該是 [1, 1, 4, 2, 1, 1, 0, 0]。
思路:棧(唉,看完彷彿自己是個弱智)
當遇到比棧頂元素大的值,就去計算棧頂元素的答案(索引差),然後出棧,大值入棧,直到所有元素遍歷完畢。
所有元素進出棧一次即可
vector<
int>
dailytemperatures
(vector<
int>
& temperatures)
st.push
(i);
}return res;
}
自己的再版(30% 5%)vector<
int>
dailytemperatures
(vector<
int>
& t)
; vector<
int>
res(t.
size()
,0);
for(
int i = t.
size()
-2;i>=
0;i--)if
(j==t.
size()
) res[i]=0
;else
if(t[j]
>t[i]
) res[i]
= j-i;
else
if(t[j]
==t[i]
) res[i]
= res[j]==0
?0:res[j]
+j-i;
}return res;
}
自己的初版(30% 5%)
從後置位開始盤…
vector<
int>
dailytemperatures
(vector<
int>
& t)
; vector<
int>
res(t.
size()
,0);
for(
int i = t.
size()
-2;i>=
0;i--
)else
if(j==t.
size()
) res[i]=0
;else
else res[i]
=j-i;}}
}return res;
}
LeetCode 739 每日溫度
根據每日 氣溫 列表,請重新生成乙個列表,對應位置的輸入是你需要再等待多久溫度才會公升高的天數。如果之後都不會公升高,請輸入 0 來代替。例如,給定乙個列表 temperatures 73,74,75,71,69,72,76,73 你的輸出應該是 1,1,4,2,1,1,0,0 static con...
LeetCode 739 每日溫度
根據每日 氣溫 列表,請重新生成乙個列表,對應位置的輸入是你需要再等待多久溫度才會公升高的天數。如果之後都不會公升高,請輸入 0 來代替。例如,給定乙個列表 temperatures 73,74,75,71,69,72,76,73 你的輸出應該是 1,1,4,2,1,1,0,0 從後一天往前一天推,...
leetcode739 每日溫度
即找之後第乙個比自己大的元素 參考 用棧實現 將元素 下標 依次入棧並且保證棧內元素從棧頂到棧底是遞增的。如果當前元素比棧頂元素大,則說明當前元素就是比棧頂元素大的第乙個元素,求出兩個下標的差值即為棧頂元素對應的結果。依次出棧並計算下標差直到棧頂元素大於當前元素,將當前元素入棧 比如 t 73,74...