File tree 8 files changed +143
-22
lines changed
solution/0000-0099/0069.Sqrt(x)
8 files changed +143
-22
lines changed Original file line number Diff line number Diff line change 24
24
- Gitee Pages: https://doocs.gitee.io/leetcode
25
25
- GitHub Pages: https://doocs.github.io/leetcode
26
26
27
+ 注:😶本项目被 Gitee 官方误判为“包含违禁违规内容”,导致 Gitee Pages 404。我们正在尝试联系 Gitee 官方人员处理,请朋友们优先访问 Netlify / GitHub Pages 站点。
28
+
27
29
## LeetCode 全解
28
30
29
31
- [ LeetCode] ( ./solution/README.md )
Original file line number Diff line number Diff line change 46
46
47
47
<!-- 这里可写通用的实现逻辑 -->
48
48
49
+ 单调栈常见模型:找出每个数左/右边** 离它最近的** 且** 比它大/小的数** 。模板:
50
+
51
+ ``` python
52
+ stk = []
53
+ for i in range (n):
54
+ while stk and check(stk[- 1 ], i):
55
+ stk.pop()
56
+ stk.append(i)
57
+ ```
58
+
49
59
<!-- tabs:start -->
50
60
51
61
### ** Python3**
52
62
53
63
<!-- 这里可写当前语言的特殊实现逻辑 -->
54
64
55
65
``` python
56
-
66
+ class Solution :
67
+ def dailyTemperatures (self , temperatures : List[int ]) -> List[int ]:
68
+ res = [0 ] * len (temperatures)
69
+ stk = []
70
+ for i, t in enumerate (temperatures):
71
+ while stk and temperatures[stk[- 1 ]] < t:
72
+ j = stk.pop()
73
+ res[j] = i - j
74
+ stk.append(i)
75
+ return res
57
76
```
58
77
59
78
### ** Java**
60
79
61
80
<!-- 这里可写当前语言的特殊实现逻辑 -->
62
81
63
82
``` java
83
+ class Solution {
84
+ public int [] dailyTemperatures (int [] temperatures ) {
85
+ int n = temperatures. length;
86
+ int [] res = new int [n];
87
+ Deque<Integer > stk = new ArrayDeque<> ();
88
+ for (int i = 0 ; i < n; ++ i) {
89
+ while (! stk. isEmpty() && temperatures[stk. peek()] < temperatures[i]) {
90
+ int j = stk. pop();
91
+ res[j] = i - j;
92
+ }
93
+ stk. push(i);
94
+ }
95
+ return res;
96
+ }
97
+ }
98
+ ```
99
+
100
+ ### ** C++**
101
+
102
+ <!-- 这里可写当前语言的特殊实现逻辑 -->
103
+
104
+ ``` cpp
105
+ class Solution {
106
+ public:
107
+ vector<int > dailyTemperatures(vector<int > &temperatures) {
108
+ int n = temperatures.size();
109
+ vector<int > res(n);
110
+ stack<int > stk;
111
+ for (int i = 0; i < n; ++i)
112
+ {
113
+ while (!stk.empty() && temperatures[ stk.top()] < temperatures[ i] )
114
+ {
115
+ res[ stk.top()] = i - stk.top();
116
+ stk.pop();
117
+ }
118
+ stk.push(i);
119
+ }
120
+ return res;
121
+ }
122
+ };
123
+ ```
64
124
125
+ ### **Go**
126
+
127
+ ```go
128
+ func dailyTemperatures(temperatures []int) []int {
129
+ res := make([]int, len(temperatures))
130
+ var stk []int
131
+ for i, t := range temperatures {
132
+ for len(stk) > 0 && temperatures[stk[len(stk)-1]] < t {
133
+ j := stk[len(stk)-1]
134
+ res[j] = i - j
135
+ stk = stk[:len(stk)-1]
136
+ }
137
+ stk = append(stk, i)
138
+ }
139
+ return res
140
+ }
65
141
```
66
142
67
143
### ** ...**
Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ public:
3
+ vector<int > dailyTemperatures (vector<int > &temperatures) {
4
+ int n = temperatures.size ();
5
+ vector<int > res (n);
6
+ stack<int > stk;
7
+ for (int i = 0 ; i < n; ++i)
8
+ {
9
+ while (!stk.empty () && temperatures[stk.top ()] < temperatures[i])
10
+ {
11
+ res[stk.top ()] = i - stk.top ();
12
+ stk.pop ();
13
+ }
14
+ stk.push (i);
15
+ }
16
+ return res;
17
+ }
18
+ };
Original file line number Diff line number Diff line change
1
+ func dailyTemperatures (temperatures []int ) []int {
2
+ res := make ([]int , len (temperatures ))
3
+ var stk []int
4
+ for i , t := range temperatures {
5
+ for len (stk ) > 0 && temperatures [stk [len (stk )- 1 ]] < t {
6
+ j := stk [len (stk )- 1 ]
7
+ res [j ] = i - j
8
+ stk = stk [:len (stk )- 1 ]
9
+ }
10
+ stk = append (stk , i )
11
+ }
12
+ return res
13
+ }
Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ public int [] dailyTemperatures (int [] temperatures ) {
3
+ int n = temperatures .length ;
4
+ int [] res = new int [n ];
5
+ Deque <Integer > stk = new ArrayDeque <>();
6
+ for (int i = 0 ; i < n ; ++i ) {
7
+ while (!stk .isEmpty () && temperatures [stk .peek ()] < temperatures [i ]) {
8
+ int j = stk .pop ();
9
+ res [j ] = i - j ;
10
+ }
11
+ stk .push (i );
12
+ }
13
+ return res ;
14
+ }
15
+ }
Original file line number Diff line number Diff line change
1
+ class Solution :
2
+ def dailyTemperatures (self , temperatures : List [int ]) -> List [int ]:
3
+ res = [0 ] * len (temperatures )
4
+ stk = []
5
+ for i , t in enumerate (temperatures ):
6
+ while stk and temperatures [stk [- 1 ]] < t :
7
+ j = stk .pop ()
8
+ res [j ] = i - j
9
+ stk .append (i )
10
+ return res
Original file line number Diff line number Diff line change 4
4
5
5
<!-- 这里写题目描述 -->
6
6
7
- <p >给定一个非负整数 < code >x</ code > ,计算并返回 < code >x</ code > 的平方根,即实现   ; <code >int sqrt(int x)</code >  ; 函数。</p >
7
+ <p >实现   ; <code >int sqrt(int x)</code >  ; 函数。</p >
8
8
9
- <p >正数的平方根有两个,只输出其中的正数平方根 。</p >
9
+ <p >计算并返回 & nbsp ; < em >x</ em > & nbsp ; 的平方根,其中 & nbsp ; < em >x </ em >是非负整数 。</p >
10
10
11
- <p >如果平方根不是整数,输出只保留整数的部分,小数部分将被舍去。</p >
12
-
13
- <p >  ; </p >
11
+ <p >由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。</p >
14
12
15
13
<p ><strong >示例 1:</strong ></p >
16
14
17
- <pre >
18
- <strong >输入:</strong > x = 4
15
+ <pre ><strong >输入:</strong > 4
19
16
<strong >输出:</strong > 2
20
17
</pre >
21
18
22
19
<p ><strong >示例 2:</strong ></p >
23
20
24
- <pre >
25
- <strong >输入:</strong > x = 8
21
+ <pre ><strong >输入:</strong > 8
26
22
<strong >输出:</strong > 2
27
- <strong >解释:</strong > 8 的平方根是 2.82842...,由于小数部分将被舍去,所以返回 2
23
+ <strong >说明:</strong > 根号 8 是 2.82842...,
24
+   ; 由于返回类型是整数,小数部分将被舍去。
28
25
</pre >
29
26
30
- <p >  ; </p >
31
-
32
- <p ><strong >提示:</strong ></p >
33
-
34
- <ul >
35
- <li><meta charset="UTF-8" /><code>0 <= x <= 2<sup>31</sup> - 1</code></li>
36
- </ul >
37
-
38
- <p >  ; </p >
39
-
40
27
<p ><meta charset =" UTF-8 " />注意:本题与主站 69  ; 题相同:  ; <a href =" https://leetcode-cn.com/problems/sqrtx/ " >https://leetcode-cn.com/problems/sqrtx/</a ></p >
41
28
42
29
Original file line number Diff line number Diff line change 22
22
23
23
<pre ><strong >输入:</strong > 8
24
24
<strong >输出:</strong > 2
25
- <strong >说明:</strong > 8 的平方根是 2.82842...,
25
+ <strong >说明:</strong > 根号 8 是 2.82842...,
26
26
  ; 由于返回类型是整数,小数部分将被舍去。
27
27
</pre >
28
28
You can’t perform that action at this time.
0 commit comments