Skip to content

Commit 1340cc3

Browse files
Merge pull request youngyangyang04#2205 from jinbudaily/master
更新 贪心算法章节 排版格式修复
2 parents cbb5bb5 + 26afd7e commit 1340cc3

20 files changed

+85
-75
lines changed

problems/0045.跳跃游戏II.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@
2525
说明:
2626
假设你总是可以到达数组的最后一个位置。
2727

28-
# 视频讲解
28+
## 算法公开课
2929

30-
**《代码随想录》算法视频公开课:[贪心算法,最少跳几步还得看覆盖范围 | LeetCode: 45.跳跃游戏 II](https://www.bilibili.com/video/BV1Y24y1r7XZ),相信结合视频在看本篇题解,更有助于大家对本题的理解**
30+
**[《代码随想录》算法视频公开课](https://programmercarl.com/other/gongkaike.html)[贪心算法,最少跳几步还得看覆盖范围 | LeetCode: 45.跳跃游戏 II](https://www.bilibili.com/video/BV1Y24y1r7XZ),相信结合视频在看本篇题解,更有助于大家对本题的理解**
3131

3232
## 思路
3333

@@ -53,7 +53,7 @@
5353

5454
**图中覆盖范围的意义在于,只要红色的区域,最多两步一定可以到!(不用管具体怎么跳,反正一定可以跳到)**
5555

56-
## 方法一
56+
### 方法一
5757

5858
从图中可以看出来,就是移动下标达到了当前覆盖的最远距离下标时,步数就要加一,来增加覆盖距离。最后的步数就是最少步数。
5959

@@ -90,7 +90,7 @@ public:
9090
* 空间复杂度: O(1)
9191
9292
93-
## 方法二
93+
### 方法二
9494
9595
依然是贪心,思路和方法一差不多,代码可以简洁一些。
9696
@@ -469,3 +469,4 @@ impl Solution {
469469
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
470470
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
471471
</a>
472+

problems/0052.N皇后II.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,3 +310,4 @@ class Solution {
310310
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
311311
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
312312
</a>
313+

problems/0053.最大子序和(动态规划).md

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
## 算法公开课
1919

20-
**《代码随想录》算法视频公开课:[看起来复杂,其实是简单动态规划 | LeetCode:53.最大子序和](https://www.bilibili.com/video/BV19V4y1F7b5),相信结合视频再看本篇题解,更有助于大家对本题的理解**
20+
**[《代码随想录》算法视频公开课](https://programmercarl.com/other/gongkaike.html)[看起来复杂,其实是简单动态规划 | LeetCode:53.最大子序和](https://www.bilibili.com/video/BV19V4y1F7b5),相信结合视频再看本篇题解,更有助于大家对本题的理解**
2121

2222

2323
## 思路
@@ -97,8 +97,8 @@ public:
9797
9898
## 其他语言版本
9999
100+
### Java:
100101
101-
Java:
102102
```java
103103
/**
104104
* 1.dp[i]代表当前下标对应的最大值
@@ -140,7 +140,8 @@ class Solution {
140140
}
141141
```
142142

143-
Python:
143+
### Python:
144+
144145
```python
145146
class Solution:
146147
def maxSubArray(self, nums: List[int]) -> int:
@@ -153,7 +154,8 @@ class Solution:
153154
return result
154155
```
155156

156-
Go:
157+
### Go:
158+
157159
```Go
158160
// solution
159161
// 1, dp
@@ -184,7 +186,7 @@ func max(a,b int) int{
184186
}
185187
```
186188

187-
JavaScript:
189+
### JavaScript:
188190

189191
```javascript
190192
const maxSubArray = nums => {
@@ -203,8 +205,7 @@ const maxSubArray = nums => {
203205
};
204206
```
205207

206-
207-
Scala:
208+
### Scala:
208209

209210
```scala
210211
object Solution {
@@ -221,7 +222,7 @@ object Solution {
221222
}
222223
```
223224

224-
TypeScript:
225+
### TypeScript:
225226

226227
```typescript
227228
function maxSubArray(nums: number[]): number {
@@ -244,3 +245,4 @@ function maxSubArray(nums: number[]): number {
244245
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
245246
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
246247
</a>
248+

problems/0055.跳跃游戏.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@
2626
- 输出: false
2727
- 解释: 无论怎样,你总会到达索引为 3 的位置。但该位置的最大跳跃长度是 0 , 所以你永远不可能到达最后一个位置。
2828

29-
# 视频讲解
29+
## 算法公开课
3030

31-
**《代码随想录》算法视频公开课:[贪心算法,怎么跳跃不重要,关键在覆盖范围 | LeetCode:55.跳跃游戏](https://www.bilibili.com/video/BV1VG4y1X7kB),相信结合视频在看本篇题解,更有助于大家对本题的理解**
31+
**[《代码随想录》算法视频公开课](https://programmercarl.com/other/gongkaike.html)[贪心算法,怎么跳跃不重要,关键在覆盖范围 | LeetCode:55.跳跃游戏](https://www.bilibili.com/video/BV1VG4y1X7kB),相信结合视频在看本篇题解,更有助于大家对本题的理解**
3232

3333
## 思路
3434

problems/0056.合并区间.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@
2222
* 解释: 区间 [1,4][4,5] 可被视为重叠区间。
2323
* 注意:输入类型已于2019年4月15日更改。 请重置默认代码定义以获取新方法签名。
2424

25-
# 视频讲解
25+
## 算法公开课
2626

27-
**《代码随想录》算法视频公开课:[贪心算法,合并区间有细节!LeetCode:56.合并区间](https://www.bilibili.com/video/BV1wx4y157nD),相信结合视频在看本篇题解,更有助于大家对本题的理解**
27+
**[《代码随想录》算法视频公开课](https://programmercarl.com/other/gongkaike.html)[贪心算法,合并区间有细节!LeetCode:56.合并区间](https://www.bilibili.com/video/BV1wx4y157nD),相信结合视频在看本篇题解,更有助于大家对本题的理解**
2828

2929
## 思路
3030

@@ -341,3 +341,4 @@ impl Solution {
341341
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
342342
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
343343
</a>
344+

problems/0122.买卖股票的最佳时机II.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,9 @@
3737
- 1 <= prices.length <= 3 \* 10 ^ 4
3838
- 0 <= prices[i] <= 10 ^ 4
3939

40-
# 视频讲解
40+
## 算法公开课
4141

42-
**《代码随想录》算法视频公开课:[贪心算法也能解决股票问题!LeetCode:122.买卖股票最佳时机 II](https://www.bilibili.com/video/BV1ev4y1C7na),相信结合视频在看本篇题解,更有助于大家对本题的理解**
42+
**[《代码随想录》算法视频公开课](https://programmercarl.com/other/gongkaike.html)[贪心算法也能解决股票问题!LeetCode:122.买卖股票最佳时机 II](https://www.bilibili.com/video/BV1ev4y1C7na),相信结合视频在看本篇题解,更有助于大家对本题的理解**
4343

4444
## 思路
4545

@@ -316,7 +316,7 @@ function maxProfit(prices: number[]): number {
316316
}
317317
```
318318

319-
### Rust
319+
### Rust
320320

321321
贪心:
322322

@@ -389,7 +389,7 @@ int maxProfit(int* prices, int pricesSize){
389389
}
390390
```
391391

392-
### Scala
392+
### Scala
393393

394394
贪心:
395395

@@ -411,3 +411,4 @@ object Solution {
411411
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
412412
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
413413
</a>
414+

problems/0134.加油站.md

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,14 @@
4545
* 解释:
4646
你不能从 0 号或 1 号加油站出发,因为没有足够的汽油可以让你行驶到下一个加油站。我们从 2 号加油站出发,可以获得 4 升汽油。 此时油箱有 = 0 + 4 = 4 升汽油。开往 0 号加油站,此时油箱有 4 - 3 + 2 = 3 升汽油。开往 1 号加油站,此时油箱有 3 - 3 + 3 = 3 升汽油。你无法返回 2 号加油站,因为返程需要消耗 4 升汽油,但是你的油箱只有 3 升汽油。因此,无论怎样,你都不可能绕环路行驶一周。
4747

48-
# 视频讲解
48+
## 算法公开课
4949

50-
**《代码随想录》算法视频公开课:[贪心算法,得这么加油才能跑完全程!LeetCode :134.加油站](https://www.bilibili.com/video/BV1jA411r7WX),相信结合视频在看本篇题解,更有助于大家对本题的理解**
50+
**[《代码随想录》算法视频公开课](https://programmercarl.com/other/gongkaike.html)[贪心算法,得这么加油才能跑完全程!LeetCode :134.加油站](https://www.bilibili.com/video/BV1jA411r7WX),相信结合视频在看本篇题解,更有助于大家对本题的理解**
5151

52+
## 思路
5253

53-
## 暴力方法
54+
55+
### 暴力方法
5456

5557
暴力的方法很明显就是O(n^2)的,遍历每一个加油站为起点的情况,模拟一圈。
5658

@@ -85,7 +87,7 @@ public:
8587
* 空间复杂度:O(1)
8688
8789
88-
## 贪心算法(方法一)
90+
### 贪心算法(方法一)
8991
9092
直接从全局进行贪心选择,情况如下:
9193
@@ -134,7 +136,7 @@ public:
134136

135137
但不管怎么说,解法毕竟还是巧妙的,不用过于执着于其名字称呼。
136138

137-
## 贪心算法(方法二)
139+
### 贪心算法(方法二)
138140

139141
可以换一个思路,首先如果总油量减去总消耗大于等于零那么一定可以跑完一圈,说明 各个站点的加油站 剩油量rest[i]相加一定是大于等于零的。
140142

@@ -633,3 +635,4 @@ object Solution {
633635
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
634636
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
635637
</a>
638+

problems/0135.分发糖果.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@
2828
* 输出: 4
2929
* 解释: 你可以分别给这三个孩子分发 1、2、1 颗糖果。第三个孩子只得到 1 颗糖果,这已满足上述两个条件。
3030

31-
# 视频讲解
31+
## 算法公开课
3232

33-
**《代码随想录》算法视频公开课:[贪心算法,两者兼顾很容易顾此失彼!LeetCode:135.分发糖果](https://www.bilibili.com/video/BV1ev4y1r7wN),相信结合视频在看本篇题解,更有助于大家对本题的理解**
33+
**[《代码随想录》算法视频公开课](https://programmercarl.com/other/gongkaike.html)[贪心算法,两者兼顾很容易顾此失彼!LeetCode:135.分发糖果](https://www.bilibili.com/video/BV1ev4y1r7wN),相信结合视频在看本篇题解,更有助于大家对本题的理解**
3434

3535

3636
## 思路
@@ -234,7 +234,7 @@ func findMax(num1 int, num2 int) int {
234234
}
235235
```
236236

237-
### Javascript:
237+
### Javascript
238238
```Javascript
239239
var candy = function(ratings) {
240240
let candys = new Array(ratings.length).fill(1)
@@ -376,3 +376,4 @@ object Solution {
376376
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
377377
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
378378
</a>
379+

problems/0376.摆动序列.md

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,13 @@
3333
- 输入: [1,2,3,4,5,6,7,8,9]
3434
- 输出: 2
3535

36-
# 视频讲解
36+
## 算法公开课
3737

38-
**《代码随想录》算法视频公开课:[贪心算法,寻找摆动有细节!| LeetCode:376.摆动序列](https://www.bilibili.com/video/BV17M411b7NS),相信结合视频在看本篇题解,更有助于大家对本题的理解**
38+
**[《代码随想录》算法视频公开课](https://programmercarl.com/other/gongkaike.html)[贪心算法,寻找摆动有细节!| LeetCode:376.摆动序列](https://www.bilibili.com/video/BV17M411b7NS),相信结合视频在看本篇题解,更有助于大家对本题的理解**
3939

40-
## 思路 1(贪心解法)
40+
## 思路
41+
42+
### 思路 1(贪心解法)
4143

4244
本题要求通过从原始序列中删除一些(也可以不删除)元素来获得子序列,剩下的元素保持其原始顺序。
4345

@@ -69,7 +71,7 @@
6971
2. 情况二:数组首尾两端
7072
3. 情况三:单调坡中有平坡
7173

72-
### 情况一:上下坡中有平坡
74+
#### 情况一:上下坡中有平坡
7375

7476
例如 [1,2,2,2,1]这样的数组,如图:
7577

@@ -87,7 +89,7 @@
8789

8890
所以我们记录峰值的条件应该是: `(preDiff <= 0 && curDiff > 0) || (preDiff >= 0 && curDiff < 0)`,为什么这里允许 prediff == 0 ,就是为了 上面我说的这种情况。
8991

90-
### 情况二:数组首尾两端
92+
#### 情况二:数组首尾两端
9193

9294
所以本题统计峰值的时候,数组最左面和最右面如何统计呢?
9395

@@ -142,7 +144,7 @@ public:
142144
143145
所以此时我们要讨论情况三!
144146
145-
### 情况三:单调坡度有平坡
147+
#### 情况三:单调坡度有平坡
146148
147149
在版本一中,我们忽略了一种情况,即 如果在一个单调坡度上有平坡,例如[1,2,2,2,3,4],如图:
148150
@@ -187,7 +189,7 @@ public:
187189

188190
![](https://code-thinking-1253855093.file.myqcloud.com/pics/20230108174452.png)
189191

190-
## 思路 2(动态规划)
192+
### 思路 2(动态规划)
191193

192194
考虑用动态规划的思想来解决这个问题。
193195

@@ -696,4 +698,3 @@ object Solution {
696698
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
697699
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
698700
</a>
699-

problems/0406.根据身高重建队列.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,9 @@
3737

3838
题目数据确保队列可以被重建
3939

40-
# 视频讲解
40+
## 算法公开课
4141

42-
**《代码随想录》算法视频公开课:[贪心算法,不要两边一起贪,会顾此失彼 | LeetCode:406.根据身高重建队列](https://www.bilibili.com/video/BV1EA411675Y),相信结合视频在看本篇题解,更有助于大家对本题的理解**
42+
**[《代码随想录》算法视频公开课](https://programmercarl.com/other/gongkaike.html)[贪心算法,不要两边一起贪,会顾此失彼 | LeetCode:406.根据身高重建队列](https://www.bilibili.com/video/BV1EA411675Y),相信结合视频在看本篇题解,更有助于大家对本题的理解**
4343

4444
## 思路
4545

@@ -402,3 +402,4 @@ object Solution {
402402
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
403403
<img src="../pics/网站星球宣传海报.jpg" width="1000"/>
404404
</a>
405+

0 commit comments

Comments
 (0)