美文网首页
算法003 买卖股票系列

算法003 买卖股票系列

作者: 攻城狮托马斯 | 来源:发表于2020-05-30 23:24 被阅读0次

参考LeetCode团灭买卖股票系列

DP[i][j][k]:  i:天数   j: 交易次数 k: 持有或不持有股票, 定义: 当第i天交易j次后持有或不持有股票最赚钱的情况


不持有股票: DP[i][j][0] = max(dp[i - 1][j][0], dp[i - 1][j][1] + price[i]);

没有持有股票,两种可能,昨天没持有股票,今天不买 / 昨天持有股票,今天卖出股票

持有股票:DP[i][j][1] = max(dp[i - 1][j][1], dp[i - 1][j - 1][0] - price[i]);

两种可能,昨天持有股票,没有卖/昨天没有持有股票,今天买


四个Base Case:

dp[-1][k][0] = 0

解释:因为 i 是从 0 开始的,所以 i = -1 意味着还没有开始,这时候的利润当然是 0 。

dp[-1][k][1] = -infinity

解释:还没开始的时候,是不可能持有股票的,用负无穷表示这种不可能。

dp[i][0][0] = 0

解释:因为 k 是从 1 开始的,所以 k = 0 意味着根本不允许交易,这时候利润当然是 0 。

dp[i][0][1] = -infinity

解释:不允许交易的情况下,是不可能持有股票的,用负无穷表示这种不可能。


从中可以推算出六题全部的做法

https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-iii/solution/yi-ge-tong-yong-fang-fa-tuan-mie-6-dao-gu-piao-wen/

https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-iv/solution/gu-piao-jiao-yi-xi-lie-cong-tan-xin-dao-dong-tai-g/

相关文章

网友评论

      本文标题:算法003 买卖股票系列

      本文链接:https://www.haomeiwen.com/subject/ziatghtx.html