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 16f4a48

Browse files
update
1 parent eed3bd5 commit 16f4a48

13 files changed

+92
-67
lines changed

‎problems/0053.最大子序和.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ public:
124124

125125
## 动态规划
126126

127-
当然本题还可以用动态规划来做,当前[「代码随想录」](https://img-blog.csdnimg.cn/20201124161234338.png)主要讲解贪心系列,后续到动态规划系列的时候会详细讲解本题的 dp 方法。
127+
当然本题还可以用动态规划来做,在代码随想录动态规划章节我会详细介绍,如果大家想在想看,可以直接跳转:[动态规划版本详解](https://programmercarl.com/0053.%E6%9C%80%E5%A4%A7%E5%AD%90%E5%BA%8F%E5%92%8C%EF%BC%88%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92%EF%BC%89.html#%E6%80%9D%E8%B7%AF)
128128

129129
那么先给出我的 dp 代码如下,有时间的录友可以提前做一做:
130130

‎problems/0121.买卖股票的最佳时机.md‎

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,21 @@
1414

1515
返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。
1616

17-
示例 1:
18-
输入:[7,1,5,3,6,4]
19-
输出:5
17+
*示例 1:
18+
*输入:[7,1,5,3,6,4]
19+
*输出:5
2020
解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。
2121

22-
示例 2:
23-
输入:prices = [7,6,4,3,1]
24-
输出:0
22+
*示例 2:
23+
*输入:prices = [7,6,4,3,1]
24+
*输出:0
2525
解释:在这种情况下, 没有交易完成, 所以最大利润为 0。
2626

27+
# 算法公开课
28+
29+
**《代码随想录》算法视频公开课:[动态规划之 LeetCode:121.买卖股票的最佳时机1](https://www.bilibili.com/video/BV1Xe4y1u77q),相信结合视频再看本篇题解,更有助于大家对本题的理解**
30+
31+
2732

2833
## 思路
2934

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ public:
102102
103103
### 动态规划
104104
105-
动态规划将在下一个系列详细讲解,本题解先给出我的 C++代码(带详细注释),感兴趣的同学可以自己先学习一下。
105+
动态规划将在下一个系列详细讲解,本题解先给出我的 C++代码(带详细注释),想先学习的话,可以看本篇:[122.买卖股票的最佳时机II(动态规划)](https://programmercarl.com/0122.%E4%B9%B0%E5%8D%96%E8%82%A1%E7%A5%A8%E7%9A%84%E6%9C%80%E4%BD%B3%E6%97%B6%E6%9C%BAII%EF%BC%88%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92%EF%BC%89.html#%E6%80%9D%E8%B7%AF)
106106
107107
```CPP
108108
class Solution {

‎problems/0122.买卖股票的最佳时机II(动态规划).md‎

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,25 +15,30 @@
1515
注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。
1616

1717

18-
示例 1:
19-
输入: [7,1,5,3,6,4]
20-
输出: 7
18+
*示例 1:
19+
*输入: [7,1,5,3,6,4]
20+
*输出: 7
2121
解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4。随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6-3 = 3 。
2222

23-
示例 2:
24-
输入: [1,2,3,4,5]
25-
输出: 4
23+
*示例 2:
24+
*输入: [1,2,3,4,5]
25+
*输出: 4
2626
解释: 在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。注意你不能在第 1 天和第 2 天接连购买股票,之后再将它们卖出。因为这样属于同时参与了多笔交易,你必须在再次购买前出售掉之前的股票。
2727

28-
示例 3:
29-
输入: [7,6,4,3,1]
30-
输出: 0
28+
*示例 3:
29+
*输入: [7,6,4,3,1]
30+
*输出: 0
3131
解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。
3232

3333
提示:
3434
* 1 <= prices.length <= 3 * 10 ^ 4
3535
* 0 <= prices[i] <= 10 ^ 4
3636

37+
# 算法公开课
38+
39+
**《代码随想录》算法视频公开课:[动态规划,股票问题第二弹 | LeetCode:122.买卖股票的最佳时机II](https://www.bilibili.com/video/BV1D24y1Q7Ls),相信结合视频再看本篇题解,更有助于大家对本题的理解**
40+
41+
3742
## 思路
3843

3944
本题我们在讲解贪心专题的时候就已经讲解过了[贪心算法:买卖股票的最佳时机II](https://programmercarl.com/0122.买卖股票的最佳时机II.html),只不过没有深入讲解动态规划的解法,那么这次我们再好好分析一下动规的解法。

‎problems/0123.买卖股票的最佳时机III.md‎

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,30 +15,35 @@
1515

1616
注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。
1717

18-
示例 1:
19-
输入:prices = [3,3,5,0,0,3,1,4]
20-
输出:6
18+
*示例 1:
19+
*输入:prices = [3,3,5,0,0,3,1,4]
20+
*输出:6
2121
解释:在第 4 天(股票价格 = 0)的时候买入,在第 6 天(股票价格 = 3)的时候卖出,这笔交易所能获得利润 = 3-0 = 3 。随后,在第 7 天(股票价格 = 1)的时候买入,在第 8 天 (股票价格 = 4)的时候卖出,这笔交易所能获得利润 = 4-1 = 3。
2222

23-
示例 2:
24-
输入:prices = [1,2,3,4,5]
25-
输出:4
23+
*示例 2:
24+
*输入:prices = [1,2,3,4,5]
25+
*输出:4
2626
解释:在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4。注意你不能在第 1 天和第 2 天接连购买股票,之后再将它们卖出。因为这样属于同时参与了多笔交易,你必须在再次购买前出售掉之前的股票。
2727

28-
示例 3:
29-
输入:prices = [7,6,4,3,1]
30-
输出:0
28+
*示例 3:
29+
*输入:prices = [7,6,4,3,1]
30+
*输出:0
3131
解释:在这个情况下, 没有交易完成, 所以最大利润为0。
3232

33-
示例 4:
34-
输入:prices = [1]
33+
*示例 4:
34+
*输入:prices = [1]
3535
输出:0
3636

3737
提示:
3838

3939
* 1 <= prices.length <= 10^5
4040
* 0 <= prices[i] <= 10^5
4141

42+
# 算法公开课
43+
44+
**《代码随想录》算法视频公开课:[动态规划,股票至多买卖两次,怎么求? | LeetCode:123.买卖股票最佳时机III](https://www.bilibili.com/video/BV1WG411K7AR),相信结合视频再看本篇题解,更有助于大家对本题的理解**
45+
46+
4247
## 思路
4348

4449

‎problems/0188.买卖股票的最佳时机IV.md‎

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,14 @@
1414

1515
注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。
1616

17-
示例 1:
18-
输入:k = 2, prices = [2,4,1]
19-
输出:2
17+
*示例 1:
18+
*输入:k = 2, prices = [2,4,1]
19+
*输出:2
2020
解释:在第 1 天 (股票价格 = 2) 的时候买入,在第 2 天 (股票价格 = 4) 的时候卖出,这笔交易所能获得利润 = 4-2 = 2。
2121

22-
示例 2:
23-
输入:k = 2, prices = [3,2,6,5,0,3]
24-
输出:7
22+
*示例 2:
23+
*输入:k = 2, prices = [3,2,6,5,0,3]
24+
*输出:7
2525
解释:在第 2 天 (股票价格 = 2) 的时候买入,在第 3 天 (股票价格 = 6) 的时候卖出, 这笔交易所能获得利润 = 6-2 = 4。随后,在第 5 天 (股票价格 = 0) 的时候买入,在第 6 天 (股票价格 = 3) 的时候卖出, 这笔交易所能获得利润 = 3-0 = 3 。
2626

2727

@@ -31,6 +31,11 @@
3131
* 0 <= prices.length <= 1000
3232
* 0 <= prices[i] <= 1000
3333

34+
# 算法公开课
35+
36+
**《代码随想录》算法视频公开课:[动态规划来决定最佳时机,至多可以买卖K次!| LeetCode:188.买卖股票最佳时机4](https://www.bilibili.com/video/BV16M411U7XJ),相信结合视频再看本篇题解,更有助于大家对本题的理解**
37+
38+
3439
## 思路
3540

3641
这道题目可以说是[动态规划:123.买卖股票的最佳时机III](https://programmercarl.com/0123.买卖股票的最佳时机III.html)的进阶版,这里要求至多有k次交易。

‎problems/0198.打家劫舍.md‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@
3131
* 0 <= nums.length <= 100
3232
* 0 <= nums[i] <= 400
3333

34+
# 算法公开课
35+
36+
**《代码随想录》算法视频公开课:[动态规划,偷不偷这个房间呢?| LeetCode:198.打家劫舍](https://www.bilibili.com/video/BV1Te411N7SX),相信结合视频再看本篇题解,更有助于大家对本题的理解**
37+
3438

3539
## 思路
3640

‎problems/0213.打家劫舍II.md‎

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -14,23 +14,28 @@
1414

1515
示例 1:
1616

17-
输入:nums = [2,3,2]
18-
输出:3
19-
解释:你不能先偷窃 1 号房屋(金额 = 2),然后偷窃 3 号房屋(金额 = 2), 因为他们是相邻的。
17+
*输入:nums = [2,3,2]
18+
*输出:3
19+
*解释:你不能先偷窃 1 号房屋(金额 = 2),然后偷窃 3 号房屋(金额 = 2), 因为他们是相邻的。
2020

21-
示例 2:
22-
输入:nums = [1,2,3,1]
23-
输出:4
24-
解释:你可以先偷窃 1 号房屋(金额 = 1),然后偷窃 3 号房屋(金额 = 3)。偷窃到的最高金额 = 1 + 3 = 4 。
21+
*示例 2:
22+
*输入:nums = [1,2,3,1]
23+
*输出:4
24+
*解释:你可以先偷窃 1 号房屋(金额 = 1),然后偷窃 3 号房屋(金额 = 3)。偷窃到的最高金额 = 1 + 3 = 4 。
2525

26-
示例 3:
27-
输入:nums = [0]
28-
输出:0
26+
*示例 3:
27+
*输入:nums = [0]
28+
*输出:0
2929

3030
提示:
3131
* 1 <= nums.length <= 100
3232
* 0 <= nums[i] <= 1000
3333

34+
# 算法公开课
35+
36+
**《代码随想录》算法视频公开课:[动态规划,房间连成环了那还偷不偷呢?| LeetCode:213.打家劫舍II](https://www.bilibili.com/video/BV1oM411B7xq),相信结合视频再看本篇题解,更有助于大家对本题的理解**
37+
38+
3439
## 思路
3540

3641
这道题目和[198.打家劫舍](https://programmercarl.com/0198.打家劫舍.html)是差不多的,唯一区别就是成环了。

‎problems/0309.最佳买卖股票时机含冷冻期.md‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@
2020
* 输出: 3
2121
* 解释: 对应的交易状态为: [买入, 卖出, 冷冻期, 买入, 卖出]
2222

23+
# 算法公开课
24+
25+
**《代码随想录》算法视频公开课:[动态规划来决定最佳时机,这次有冷冻期!| LeetCode:309.买卖股票的最佳时机含冷冻期](https://www.bilibili.com/video/BV1rP4y1D7ku),相信结合视频再看本篇题解,更有助于大家对本题的理解**
26+
2327

2428
## 思路
2529

‎problems/0337.打家劫舍III.md‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@
1616

1717
![337.打家劫舍III](https://code-thinking-1253855093.file.myqcloud.com/pics/20210223173849619.png)
1818

19+
# 算法公开课
20+
21+
**《代码随想录》算法视频公开课:[动态规划,房间连成树了,偷不偷呢?| LeetCode:337.打家劫舍3](https://www.bilibili.com/video/BV1H24y1Q7sY),相信结合视频再看本篇题解,更有助于大家对本题的理解**
22+
23+
1924
## 思路
2025

2126
这道题目和 [198.打家劫舍](https://programmercarl.com/0198.打家劫舍.html),[213.打家劫舍II](https://programmercarl.com/0213.打家劫舍II.html)也是如出一辙,只不过这个换成了树。

0 commit comments

Comments
(0)

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