不考慮暴力遍歷的方法,太笨比了,失去了刷題的意義。
這個題目是在棧相關的練習下,所以考慮借助棧來解決。1、先從頭開始遍歷陣列,依次將溫度入棧;
2、如果當前溫度大於棧頂溫度,將棧頂溫度出棧,且兩個溫度的下標之差就是所求的需要等待的天數。然後繼續比較當前溫度跟新的棧頂溫度的大小,重複之前的操作,直到該溫度小於棧頂元素,則將其入棧;
3、如果當前溫度小於棧頂溫度,則繼續將下乙個元素入棧,直到該溫度大於棧頂溫度,跳轉至步驟2;
4、遍歷直到陣列結束;
其實上述步驟就是為了構建乙個遞減棧。
class
solution
st.push
(i);
}return res;}}
;
LeetCode 每日溫度 739
根據每日氣溫列表,請重新生成乙個列表,對應位置的輸入是你需要再等待多久溫度才會公升高的天數。如果之後都不會公升高,請輸入0來代替。例如,給定乙個列表temperatures 73,74,75,71,69,72,76,73 你的輸出應該是 1,1,4,2,1,1,0,0 說實話,看到這個題的時候,我下...
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 從後一天往前一天推,...