# LWC 61：739. Daily Temperatures

## LWC 61：739. Daily Temperatures

Problem:

Given a list of daily temperatures, produce a list that, for each day in the input, tells you how many days you would have to wait until a warmer temperature. If there is no future day for which this is possible, put 0 instead. For example, given the list temperatures = [73, 74, 75, 71, 69, 72, 76, 73], your output should be [1, 1, 4, 2, 1, 1, 0, 0].

Note:

The length of temperatures will be in the range [1, 30000]. Each temperature will be an integer in the range [30, 100].

Java版本：

```    public int[] dailyTemperatures(int[] temperatures) {
int n = temperatures.length;
int[] ans = new int[n];

Stack<Integer> stack = new Stack<>();
Map<Integer, Integer> mem = new HashMap<>();
for (int i = 0; i < n; ++i) {
while (!stack.isEmpty() && temperatures[stack.peek()] < temperatures[i]) {
int nxt = stack.pop();
mem.put(nxt, i);
}
stack.push(i);
}

for (int i = 0; i < n; ++i) {
if (mem.containsKey(i)) {
ans[i] = mem.get(i) - i;
}
else ans[i] = 0;
}

return ans;
}```

Python 版本：

```    def dailyTemperatures(self, temperatures):
"""
:type temperatures: List[int]
:rtype: List[int]
"""
n = len(temperatures)
stack = []
map = {}

ans = [0] * n
for i in range(n):
while (len(stack) > 0 and temperatures[stack[-1]] < temperatures[i]):
nxt = stack.pop(-1)
ans[nxt] = i - nxt
stack.append(i)

return ans  ```

0 条评论

## 相关文章

15530

19580

29780

9010

### 快速入门系列--CLR--03泛型集合

.NET中的泛型集合 在这里主要介绍常见的泛型集合，很多时候其并发时的线程安全性常常令我们担忧。因而简述下.NET并发时线程安全特性，其详情请见MSDN。 ...

18870

8220

29980

28520

19510

31640