Problem: 739. 每日温度
思路
要注意审题,是下一个最高温度出现在几天后,而不是出现在第几天
复杂度
时间复杂度:
添加时间复杂度, 示例: $O(n)$
空间复杂度:
添加空间复杂度, 示例: $O(n)$
Code
[]1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| class Solution {
public: vector<int> dailyTemperatures(vector<int>& temperatures) { vector<int> res(temperatures.size(), 0); stack<int> st; st.push(0);
for (int i = 0; i < temperatures.size(); i++) { if (temperatures[i] <= temperatures[st.top()]) { st.push(i); } else { while (!st.empty() && temperatures[i] > temperatures[st.top()]) { res[st.top()] = i - st.top(); st.pop(); } st.push(i); } } return res; } };
|