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 e0c5da7

Browse files
更新 单调栈系列题目 排版格式修复
1 parent 7c9fcfe commit e0c5da7

File tree

5 files changed

+53
-43
lines changed

5 files changed

+53
-43
lines changed

‎problems/0042.接雨水.md‎

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
* 输出:9
3030

3131

32-
# 思路
32+
## 思路
3333

3434
接雨水问题在面试中还是常见题目的,有必要好好讲一讲。
3535

@@ -39,7 +39,7 @@
3939
* 动态规划
4040
* 单调栈
4141

42-
## 暴力解法
42+
### 暴力解法
4343

4444
本题暴力解法也是也是使用双指针。
4545

@@ -137,7 +137,7 @@ public:
137137

138138
力扣后面修改了后台测试数据,所以以上暴力解法超时了。
139139

140-
## 双指针优化
140+
### 双指针优化
141141

142142

143143
在暴力解法中,我们可以看到只要记录左边柱子的最高高度 和 右边柱子的最高高度,就可以计算当前位置的雨水面积,这就是通过列来计算。
@@ -184,7 +184,7 @@ public:
184184
};
185185
```
186186

187-
## 单调栈解法
187+
### 单调栈解法
188188

189189
关于单调栈的理论基础,单调栈适合解决什么问题,单调栈的工作过程,大家可以先看这题讲解 [739. 每日温度](https://programmercarl.com/0739.每日温度.html)
190190

@@ -194,7 +194,7 @@ public:
194194

195195
而接雨水这道题目,我们正需要寻找一个元素,右边最大元素以及左边最大元素,来计算雨水面积。
196196

197-
### 准备工作
197+
#### 准备工作
198198

199199
那么本题使用单调栈有如下几个问题:
200200

@@ -248,7 +248,7 @@ stack<int> st; // 存着下标,计算的时候用下标对应的柱子高度
248248

249249
明确了如上几点,我们再来看处理逻辑。
250250

251-
### 单调栈处理逻辑
251+
#### 单调栈处理逻辑
252252

253253
以下操作过程其实和 [739. 每日温度](https://programmercarl.com/0739.每日温度.html) 也是一样的,建议先做 [739. 每日温度](https://programmercarl.com/0739.每日温度.html)
254254

@@ -596,7 +596,7 @@ class Solution:
596596

597597
```
598598

599-
### Go
599+
### Go:
600600

601601
```go
602602
func trap(height []int) int {
@@ -802,7 +802,7 @@ var trap = function(height) {
802802
};
803803
```
804804

805-
### TypeScript
805+
### TypeScript:
806806

807807
暴力解法:
808808

@@ -925,8 +925,7 @@ int trap(int* height, int heightSize) {
925925
* 时间复杂度 O(n)
926926
* 空间复杂度 O(1)
927927
928-
929-
Rust
928+
### Rust:
930929
931930
双指针
932931
@@ -980,3 +979,4 @@ impl Solution {
980979
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
981980
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
982981
</a>
982+

‎problems/0084.柱状图中最大的矩形.md‎

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,15 @@
2020
* 1 <= heights.length <=10^5
2121
* 0 <= heights[i] <= 10^4
2222

23-
# 思路
23+
## 思路
2424

2525
本题和[42. 接雨水](https://programmercarl.com/0042.接雨水.html),是遥相呼应的两道题目,建议都要仔细做一做,原理上有很多相同的地方,但细节上又有差异,更可以加深对单调栈的理解!
2626

2727
其实这两道题目先做那一道都可以,但我先写的42.接雨水的题解,所以如果没做过接雨水的话,建议先做一做接雨水,可以参考我的题解:[42. 接雨水](https://programmercarl.com/0042.接雨水.html)
2828

2929
我们先来看一下暴力解法的解法:
3030

31-
## 暴力解法
31+
### 暴力解法
3232

3333
```CPP
3434
class Solution {
@@ -55,7 +55,7 @@ public:
5555
5656
如上代码并不能通过leetcode,超时了,因为时间复杂度是$O(n^2)$。
5757
58-
## 双指针解法
58+
### 双指针解法
5959
6060
本题双指针的写法整体思路和[42. 接雨水](https://programmercarl.com/0042.接雨水.html)是一致的,但要比[42. 接雨水](https://programmercarl.com/0042.接雨水.html)难一些。
6161
@@ -98,7 +98,7 @@ public:
9898
};
9999
```
100100

101-
## 单调栈
101+
### 单调栈
102102

103103
本地单调栈的解法和接雨水的题目是遥相呼应的。
104104

@@ -169,7 +169,7 @@ public:
169169
}
170170
};
171171

172-
```
172+
```
173173

174174
细心的录友会发现,我在 height数组上后,都加了一个元素0, 为什么这么做呢?
175175

@@ -229,7 +229,7 @@ public:
229229
230230
## 其他语言版本
231231
232-
Java:
232+
### Java:
233233
234234
暴力解法:
235235
```java
@@ -335,7 +335,7 @@ class Solution {
335335
}
336336
```
337337

338-
Python3:
338+
### Python3:
339339

340340
```python
341341

@@ -468,7 +468,7 @@ class Solution:
468468

469469
```
470470

471-
Go:
471+
### Go:
472472

473473
> 单调栈
474474

@@ -506,7 +506,8 @@ func largestRectangleArea(heights []int) int {
506506

507507
```
508508
509-
JavaScript:
509+
### JavaScript:
510+
510511
```javascript
511512
//双指针 js中运行速度最快
512513
var largestRectangleArea = function(heights) {
@@ -581,7 +582,7 @@ var largestRectangleArea = function(heights) {
581582
return maxArea;
582583
};
583584
```
584-
TypeScript:
585+
### TypeScript:
585586

586587
> 暴力法(会超时):
587588
@@ -669,8 +670,7 @@ function largestRectangleArea(heights: number[]): number {
669670
};
670671
```
671672

672-
673-
Rust
673+
### Rust:
674674

675675
双指针预处理
676676
```rust
@@ -730,3 +730,4 @@ impl Solution {
730730
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
731731
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
732732
</a>
733+

‎problems/0496.下一个更大元素I.md‎

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位
3737
* nums1和nums2中所有整数 互不相同
3838
* nums1 中的所有整数同样出现在 nums2 中
3939

40-
# 思路
40+
## 思路
4141

4242
做本题之前,建议先做一下[739. 每日温度](https://programmercarl.com/0739.每日温度.html)
4343

@@ -191,7 +191,8 @@ public:
191191
建议大家把情况一二三想清楚了,先写出版本一的代码,然后在其基础上在做精简!
192192

193193
## 其他语言版本
194-
Java
194+
### Java
195+
195196
```java
196197
class Solution {
197198
public int[] nextGreaterElement(int[] nums1, int[] nums2) {
@@ -248,7 +249,8 @@ class Solution {
248249
}
249250
}
250251
```
251-
Python3:
252+
### Python3
253+
252254
```python
253255
class Solution:
254256
def nextGreaterElement(self, nums1: List[int], nums2: List[int]) -> List[int]:
@@ -269,7 +271,7 @@ class Solution:
269271
return result
270272
```
271273

272-
Go:
274+
### Go
273275

274276
> 未精简版本
275277
```go
@@ -335,7 +337,7 @@ func nextGreaterElement(nums1 []int, nums2 []int) []int {
335337
}
336338
```
337339

338-
JavaScript:
340+
### JavaScript
339341

340342
```JS
341343
var nextGreaterElement = function (nums1, nums2) {
@@ -358,7 +360,7 @@ var nextGreaterElement = function (nums1, nums2) {
358360
};
359361
```
360362

361-
TypeScript:
363+
### TypeScript
362364

363365
```typescript
364366
function nextGreaterElement(nums1: number[], nums2: number[]): number[] {
@@ -387,7 +389,7 @@ function nextGreaterElement(nums1: number[], nums2: number[]): number[] {
387389
};
388390
```
389391

390-
Rust
392+
### Rust
391393

392394
```rust
393395
impl Solution {
@@ -419,3 +421,4 @@ impl Solution {
419421
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
420422
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
421423
</a>
424+

‎problems/0503.下一个更大元素II.md‎

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
* -10^9 <= nums[i] <= 10^9
2323

2424

25-
# 思路
25+
## 思路
2626

2727
做本题之前建议先做[739. 每日温度](https://programmercarl.com/0739.每日温度.html)[496.下一个更大元素 I](https://programmercarl.com/0496.下一个更大元素I.html)
2828

@@ -138,7 +138,8 @@ public:
138138

139139
## 其他语言版本
140140

141-
Java:
141+
### Java:
142+
142143
```Java
143144
class Solution {
144145
public int[] nextGreaterElements(int[] nums) {
@@ -162,7 +163,8 @@ class Solution {
162163
}
163164
```
164165

165-
Python:
166+
### Python:
167+
166168
```python
167169
# 方法 1:
168170
class Solution:
@@ -196,7 +198,8 @@ class Solution:
196198
stack.append(i)
197199
return ans
198200
```
199-
Go:
201+
### Go:
202+
200203
```go
201204
func nextGreaterElements(nums []int) []int {
202205
length := len(nums)
@@ -218,7 +221,7 @@ func nextGreaterElements(nums []int) []int {
218221
}
219222
```
220223

221-
JavaScript:
224+
### JavaScript:
222225

223226
```JS
224227
/**
@@ -242,7 +245,7 @@ var nextGreaterElements = function (nums) {
242245
return res;
243246
};
244247
```
245-
TypeScript:
248+
### TypeScript:
246249

247250
```typescript
248251
function nextGreaterElements(nums: number[]): number[] {
@@ -266,7 +269,8 @@ function nextGreaterElements(nums: number[]): number[] {
266269
};
267270
```
268271

269-
Rust
272+
### Rust:
273+
270274
```rust
271275
impl Solution {
272276
pub fn next_greater_elements(nums: Vec<i32>) -> Vec<i32> {
@@ -290,3 +294,4 @@ impl Solution {
290294
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
291295
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
292296
</a>
297+

‎problems/0739.每日温度.md‎

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -211,8 +211,7 @@ public:
211211

212212
## 其他语言版本
213213

214-
215-
Java:
214+
### Java:
216215

217216
```java
218217
class Solution {
@@ -270,7 +269,8 @@ class Solution {
270269
}
271270
```
272271

273-
Python:
272+
### Python:
273+
274274
> 未精简版本
275275

276276
```python
@@ -307,7 +307,7 @@ class Solution:
307307
return answer
308308
```
309309

310-
Go:
310+
### Go:
311311

312312
> 暴力法
313313

@@ -384,7 +384,7 @@ func dailyTemperatures(num []int) []int {
384384
}
385385
```
386386

387-
JavaScript:
387+
### JavaScript:
388388

389389
```javascript
390390
// 版本一
@@ -429,7 +429,7 @@ var dailyTemperatures = function(temperatures) {
429429
};
430430
```
431431

432-
TypeScript:
432+
### TypeScript:
433433

434434
> 精简版:
435435
@@ -455,7 +455,7 @@ function dailyTemperatures(temperatures: number[]): number[] {
455455
};
456456
```
457457

458-
Rust:
458+
### Rust:
459459

460460
```rust
461461
impl Solution {
@@ -482,3 +482,4 @@ impl Solution {
482482
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
483483
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
484484
</a>
485+

0 commit comments

Comments
(0)

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