mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 08:50:15 +08:00
动态规划-股票问题总结篇:修改买卖股票的最佳时机IV的动规五部曲步骤2递推公式错误,优化排版,笔误
This commit is contained in:
@ -173,6 +173,7 @@ public:
|
|||||||
【动态规划】
|
【动态规划】
|
||||||
|
|
||||||
一天一共就有五个状态,
|
一天一共就有五个状态,
|
||||||
|
|
||||||
0. 没有操作
|
0. 没有操作
|
||||||
1. 第一次买入
|
1. 第一次买入
|
||||||
2. 第一次卖出
|
2. 第一次卖出
|
||||||
@ -199,6 +200,7 @@ dp[i][1] = max(dp[i-1][0] - prices[i], dp[i - 1][1]);
|
|||||||
同理可推出剩下状态部分:
|
同理可推出剩下状态部分:
|
||||||
|
|
||||||
dp[i][3] = max(dp[i - 1][3], dp[i - 1][2] - prices[i]);
|
dp[i][3] = max(dp[i - 1][3], dp[i - 1][2] - prices[i]);
|
||||||
|
|
||||||
dp[i][4] = max(dp[i - 1][4], dp[i - 1][3] + prices[i]);
|
dp[i][4] = max(dp[i - 1][4], dp[i - 1][3] + prices[i]);
|
||||||
|
|
||||||
代码如下:
|
代码如下:
|
||||||
@ -279,14 +281,14 @@ j的状态表示为:
|
|||||||
* 操作一:第i天买入股票了,那么dp[i][1] = dp[i - 1][0] - prices[i]
|
* 操作一:第i天买入股票了,那么dp[i][1] = dp[i - 1][0] - prices[i]
|
||||||
* 操作二:第i天没有操作,而是沿用前一天买入的状态,即:dp[i][1] = dp[i - 1][1]
|
* 操作二:第i天没有操作,而是沿用前一天买入的状态,即:dp[i][1] = dp[i - 1][1]
|
||||||
|
|
||||||
dp[i][1] = max(dp[i - 1][0] - prices[i], dp[i - 1][0]);
|
dp[i][1] = max(dp[i - 1][0] - prices[i], dp[i - 1][1]);
|
||||||
|
|
||||||
同理dp[i][2]也有两个操作:
|
同理dp[i][2]也有两个操作:
|
||||||
|
|
||||||
* 操作一:第i天卖出股票了,那么dp[i][2] = dp[i - 1][1] + prices[i]
|
* 操作一:第i天卖出股票了,那么dp[i][2] = dp[i - 1][1] + prices[i]
|
||||||
* 操作二:第i天没有操作,沿用前一天卖出股票的状态,即:dp[i][2] = dp[i - 1][2]
|
* 操作二:第i天没有操作,沿用前一天卖出股票的状态,即:dp[i][2] = dp[i - 1][2]
|
||||||
|
|
||||||
dp[i][2] = max(dp[i - 1][i] + prices[i], dp[i][2])
|
dp[i][2] = max(dp[i - 1][1] + prices[i], dp[i - 1][2])
|
||||||
|
|
||||||
同理可以类比剩下的状态,代码如下:
|
同理可以类比剩下的状态,代码如下:
|
||||||
|
|
||||||
@ -320,7 +322,7 @@ public:
|
|||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
当然有的解法是定义一个三维数组dp[i][j][k],第i天,第j次买卖,k表示买还是卖的状态,从定义上来讲是比较直观。但感觉三维数组操作起来有些麻烦,直接用二维数组来模拟三位数组的情况,代码看起来也清爽一些。
|
当然有的解法是定义一个三维数组dp[i][j][k],第i天,第j次买卖,k表示买还是卖的状态,从定义上来讲是比较直观。但感觉三维数组操作起来有些麻烦,直接用二维数组来模拟三维数组的情况,代码看起来也清爽一些。
|
||||||
|
|
||||||
## 最佳买卖股票时机含冷冻期
|
## 最佳买卖股票时机含冷冻期
|
||||||
|
|
||||||
@ -462,7 +464,7 @@ public:
|
|||||||
|
|
||||||
至此,股票系列正式剧终,全部讲解完毕!
|
至此,股票系列正式剧终,全部讲解完毕!
|
||||||
|
|
||||||
从买买一次到买卖多次,从最多买卖两次到最多买卖k次,从冷冻期再到手续费,最后再来一个股票大总结,可以说对股票系列完美收官了。
|
从买卖一次到买卖多次,从最多买卖两次到最多买卖k次,从冷冻期再到手续费,最后再来一个股票大总结,可以说对股票系列完美收官了。
|
||||||
|
|
||||||
「代码随想录」值得推荐给身边每一位学习算法的朋友同学们,关注后都会发现相见恨晚!
|
「代码随想录」值得推荐给身边每一位学习算法的朋友同学们,关注后都会发现相见恨晚!
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user