309.最佳买卖股票时机含冷冻期
视频讲解:动态规划来决定最佳时机,这次有冷冻期!| LeetCode:309.买卖股票的最佳时机含冷冻期_哔哩哔哩_bilibili
初步思路:买卖股票的最佳时机II。
总结:
dp[i][0] = max(dp[i - 1][0], max(dp[i - 1][3], dp[i - 1][1]) - prices[i]);
dp[i][1] = max(dp[i - 1][1], dp[i - 1][3]);
dp[i][2] = dp[i - 1][0] + prices[i];
dp[i][3] = dp[i - 1][2];
达到买入股票状态(状态一)即:dp[i][0],有两个具体操作:
达到保持卖出股票状态(状态二)即:dp[i][1],有两个具体操作:
达到今天就卖出股票状态(状态三),即:dp[i][2] ,只有一个操作:
昨天一定是持有股票状态(状态一),今天卖出
达到冷冻期状态(状态四),即:dp[i][3],只有一个操作:
昨天卖出了股票(状态三)
用时:60分钟
视频讲解:动态规划来决定最佳时机,这次含手续费!| LeetCode:714.买卖股票的最佳时机含手续费_哔哩哔哩_bilibili
初步思路:买卖股票的最佳时机II。
总结:
分别考虑2种情况:
【1】dp[i][0] 表示第i天持有股票所得最多现金
【2】dp[i][1] 表示第i天不持有股票所得最多现金
如果第i天持有股票即dp[i][0]: dp[i][0] = max(dp[i - 1][0], dp[i - 1][1]-prices[i])
如果第i天不持有股票即dp[i][1]: dp[i][1] = max(dp[i - 1][1], prices[i] + dp[i - 1][0] - fee);
用时:30分钟