mirror of
https://github.com/ShusenTang/LeetCode.git
synced 2026-09-02 13:34:49 +08:00
add 739. Daily Temperatures 🍺
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
# [739. Daily Temperatures](https://leetcode.com/problems/daily-temperatures/)
|
||||
|
||||
# 思路
|
||||
|
||||
数组里每个元素的右边第一个比它大的元素,若找不到用0填充。典型的单调栈,关于单调栈我已经总结过了([戳我](../algorithm/array/monotonic_stack_queue.md)),这里不再赘述,直接给出代码。
|
||||
|
||||
时空复杂度均为O(N)
|
||||
|
||||
# C++
|
||||
``` C++
|
||||
class Solution {
|
||||
public:
|
||||
vector<int> dailyTemperatures(vector<int>& T) {
|
||||
int n = T.size();
|
||||
vector<int>res(T.size(), 0);
|
||||
|
||||
stack<int>mono_stk;
|
||||
for(int i = n - 1; i >= 0; i--){ // 反向遍历
|
||||
while(!mono_stk.empty() && T[i] >= T[mono_stk.top()])
|
||||
mono_stk.pop();
|
||||
if(!mono_stk.empty())
|
||||
res[i] = mono_stk.top() - i;
|
||||
mono_stk.push(i);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
};
|
||||
```
|
||||
Reference in New Issue
Block a user