File tree Expand file tree Collapse file tree 1 file changed +2
-2
lines changed Expand file tree Collapse file tree 1 file changed +2
-2
lines changed Original file line number Diff line number Diff line change @@ -1561,14 +1561,14 @@ public:
1561
1561
### 解答
1562
1562
#### 方法1:动态规划
1563
1563
1564
- 开辟两个二维数组` global ` 和` local ` ,定义` global[i][j] ` 表示到 ** 第j天最多交易i次 ** 获得的最大收益,为全局最优。` local[i][j] ` 表示到 ** 第j天最多交易i次并且第i次交易就在第j天结束 ** 能获得的最大收益,为局部最优。那么动态转移方程为:
1564
+ 开辟两个二维数组` global ` 和` local ` ,定义` global[i][j] ` 表示 ** 到第j天最多交易i次 ** 获得的最大收益,为全局最优。` local[i][j] ` 表示 ** 到第j天最多交易i次并且最后一次交易就在第j天卖出 ** 能获得的最大收益,为局部最优。那么动态转移方程为:
1565
1565
1566
1566
```
1567
1567
local[i][j] = max(global[i-1][j-1] + max(diff,0), local[i][j-1] + diff) (diff表示第i天和前一天股票价格的差值)
1568
1568
global[i][j] = max(local[i][j] , global[i][j-1])
1569
1569
```
1570
1570
1571
- 这种方法可以求出交易k次能获得最大收益` global[k][len-1] ` ,取` k= 2 ` 就能求出交易两次所获得的最大收益` global[2][len-1] ` 。
1571
+ 递推式的详细讲解 [ 参考博客 ] ( https://blog.csdn.net/linhuanmars/article/details/23236995 ) , 这种方法可以求出交易k次能获得最大收益` global[k][len-1] ` ,取` k = 2 ` 就能求出交易两次所获得的最大收益` global[2][len-1] ` 。
1572
1572
1573
1573
* 时间复杂度O(* n* )
1574
1574
* 空间复杂度O(* n<sup >2</sup >* )
You can’t perform that action at this time.
0 commit comments