更新 单调栈系列题目 排版格式修复

This commit is contained in:
jinbudaily
2023-07-27 14:18:47 +08:00
parent 7c9fcfe09d
commit e0c5da76e6
5 changed files with 53 additions and 43 deletions

View File

@@ -29,7 +29,7 @@
* 输出9
# 思路
## 思路
接雨水问题在面试中还是常见题目的,有必要好好讲一讲。
@@ -39,7 +39,7 @@
* 动态规划
* 单调栈
## 暴力解法
### 暴力解法
本题暴力解法也是也是使用双指针。
@@ -137,7 +137,7 @@ public:
力扣后面修改了后台测试数据,所以以上暴力解法超时了。
## 双指针优化
### 双指针优化
在暴力解法中,我们可以看到只要记录左边柱子的最高高度 和 右边柱子的最高高度,就可以计算当前位置的雨水面积,这就是通过列来计算。
@@ -184,7 +184,7 @@ public:
};
```
## 单调栈解法
### 单调栈解法
关于单调栈的理论基础,单调栈适合解决什么问题,单调栈的工作过程,大家可以先看这题讲解 [739. 每日温度](https://programmercarl.com/0739.每日温度.html)。
@@ -194,7 +194,7 @@ public:
而接雨水这道题目,我们正需要寻找一个元素,右边最大元素以及左边最大元素,来计算雨水面积。
### 准备工作
#### 准备工作
那么本题使用单调栈有如下几个问题:
@@ -248,7 +248,7 @@ stack<int> st; // 存着下标,计算的时候用下标对应的柱子高度
明确了如上几点,我们再来看处理逻辑。
### 单调栈处理逻辑
#### 单调栈处理逻辑
以下操作过程其实和 [739. 每日温度](https://programmercarl.com/0739.每日温度.html) 也是一样的,建议先做 [739. 每日温度](https://programmercarl.com/0739.每日温度.html)。
@@ -596,7 +596,7 @@ class Solution:
```
### Go
### Go:
```go
func trap(height []int) int {
@@ -802,7 +802,7 @@ var trap = function(height) {
};
```
### TypeScript
### TypeScript:
暴力解法:
@@ -925,8 +925,7 @@ int trap(int* height, int heightSize) {
* 时间复杂度 O(n)
* 空间复杂度 O(1)
Rust
### Rust:
双指针
@@ -980,3 +979,4 @@ impl Solution {
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
</a>