关于动态规划【力扣121.买卖股票的最佳时机和122.买卖股票的最佳时机II的思考】
1、关键思路
【把“买卖”股票问题转化为“持有不持有”股票问题】
比如在第3天我持有这支股票,不代表我今天有买入这支股票,有可能我第1天就买了这支股票,现在只是持有状态,我手头上有这支股票。
(这样我们就可以用dp[i][0]和dp[i][1]表示更多状态,就算不买入股票的那天,也可以用dp数组表示)
2、121.买卖股票的最佳时机和122.买卖股票的最佳时机II的区别
121.买卖股票的最佳时机:一支股票只能买卖一次
122.买卖股票的最佳时机II:一支股票可以买卖多次
3、122.买卖股票的最佳时机II的关键思路
因为本题可以买卖多次,所以在计算第i天持有股票最大利润的时候,可以从“前一天就持有的最大利润”的状态转移过来,【也可以是从“前一天不持有的最大利润 而今天再买入”的状态转移过来】
(如果昨天就是持有状态,今天就不能再买入了;
如果今天要买入,说明昨天是不持有状态,不管昨天有没有卖出,总之昨天就是手头上不持有股票)
(之前学习贪心算法的时候有做到这题。使用的是贪心算法。
但是贪心算法只能解决买卖股票的具体问题;
而动态规划可以解决买卖股票的一系列问题)
