买卖股票的最佳时机III
学习记录自代码随想录
要点:1.需要想清楚每天有四种状态,持有第一支股票-不持有第一支股票-持有第二支股票-不持有第二支股票,从而明确出dp数组的定义;
2.递推公式想到对每个状态分别做递归,并且四个状态有时序关系,所以每个状态一定是和前一个状态有关联,如此寻找到递归关系表达式;
3.持有股票不一定就要当天买入股票,也有可能i-1天买入股票,两者取较大值递归;
4.不持有股票可以是i-1天就已经不持有股票,也可以是在当天卖出股票,同样取两者种较大值;
class Solution {
public:
int maxProfit(vector<int>& prices) {
int n = prices.size();
if(n == 1) return 0;
// 1.dp[i][0-3] 第i天是否持有股票有4种状态分别代表0持