即找之後第乙個比自己大的元素
參考:用棧實現:
將元素(下標)依次入棧並且保證棧內元素從棧頂到棧底是遞增的。(如果當前元素比棧頂元素大,則說明當前元素就是比棧頂元素大的第乙個元素,求出兩個下標的差值即為棧頂元素對應的結果。依次出棧並計算下標差直到棧頂元素大於當前元素,將當前元素入棧)。
比如:t: [73, 74, 75, 71, 69, 72, 76, 73]
s:[73]
74大於73,說明比73大的第乙個元素是74,兩者下標差為1,即73處的結果為1 s:[74]
75大於74,說明比74大的第乙個元素是75,下標差為1,74處的結果為1 s:[75]
71小於75,說明比75大的元素還沒到,71入棧 s:[75,71]
69小於71,69入棧,s:[75,71,69]
72大於69,說明比69大的第乙個元素是72,座標差為1,69處的結果為1 s:[75,71]
同時72大於71,說明比71大的第乙個元素是72,座標差為2,71處的結果為2,s:[75]
72小於75,72入棧 s:[75,72]
76大於72,72處的結果為1,76大於75,75處的結果為4,棧空,76入棧,s:[76]
73小於76,入棧s:[76,73]
因此最終結果為[1,1,4,2,1,1,0,0]
**:
class solution
index.
push
(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 從後一天往前一天推,...
leetcode 739 每日溫度
根據每日 氣溫 列表,請重新生成乙個列表,對應位置的輸入是你需要再等待多久溫度才會公升高超過該日的天數。如果之後都不會公升高,請在該位置用 0 來代替。例如,給定乙個列表 temperatures 73,74,75,71,69,72,76,73 你的輸出應該是 1,1,4,2,1,1,0,0 無腦版...