Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit b5a4c8c

Browse files
committed
add 08
1 parent 1091dfd commit b5a4c8c

File tree

1 file changed

+66
-0
lines changed
  • leetcode刷题/note/6月刷题

1 file changed

+66
-0
lines changed

‎leetcode刷题/note/6月刷题/08.md

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# No.739 每日温度
2+
请根据每日 气温 列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。
3+
4+
难度:`middle`
5+
6+
7+
## 示例
8+
9+
例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]
10+
11+
提示:气温 列表长度的范围是 [1, 30000]。每个气温的值的均为华氏度,都是在 [30, 100] 范围内的整数。
12+
13+
## 解题思路
14+
15+
暴力法很好解决,两次循环,两个指针,只要后指针大于前指针,记录即可。
16+
17+
代码如下:
18+
19+
```javascript
20+
/**
21+
* @param {number[]} T
22+
* @return {number[]}
23+
*/
24+
var dailyTemperatures = function(T) {
25+
let n = T.length;
26+
let ans = new Array(n).fill(0);
27+
// 暴力法很好解决
28+
for (let i = 0, n = T.length; i < n; i++) {
29+
for (let j = i+1; j < n; j++) {
30+
if (T[i] < T[j]) {
31+
ans[i] = j - i;
32+
break;
33+
}
34+
}
35+
}
36+
return ans;
37+
};
38+
```
39+
40+
### 优化
41+
42+
可以使用一个辅助栈进行优化,栈记录的是数组的标。从头遍历数组,入栈,如果当前待入栈的数据大于栈顶数据,移除栈顶元素,将下标之差记录到返回答案数组。
43+
44+
代码如下:
45+
46+
```javascript
47+
/**
48+
* @param {number[]} T
49+
* @return {number[]}
50+
*/
51+
var dailyTemperatures = function(T) {
52+
let n = T.length;
53+
let ans = new Array(n).fill(0);
54+
let stack = [];
55+
// 暴力法很好解决
56+
for (let i = 0, n = T.length; i < n; i++) {
57+
let temperature = T[i];
58+
while (stack.length!=0 && temperature > T[stack[stack.length-1]]) {
59+
let prevIndex = stack.pop();
60+
ans[prevIndex] = i - prevIndex;
61+
}
62+
stack.push(i);
63+
}
64+
return ans;
65+
};
66+
```

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /