股票问题动态规划解法核心思路在于对每天的状态进行区分,就是根据每天的不同的买入卖出状态与天数来拆分得到二维数组,通过寻找每天的各个状态与上一天各个状态之间的递推关系来解决问题,下面举几个例子:
1.对于不限买卖次数的,我们可以每天记录2个状态,即买入、卖出
2.对于限制买卖次数的,我们可以每天记录2k个状态,即第k次买入、第k次卖出
3.对于含冷冻期的,实际上每天只有4个状态,即买入,卖出,冷冻期,可买入这4个状态
4.对于含手续费的,不限制买卖次数,实际上和1解法相同,只有两个状态,但别忘了,每卖一次减去手续费。注意这里初始化第一天dp[0][1],也就是第一天不持有股票的初始值,应该是0,不需要减手续费,你闲的你当天买入卖出交一次手续费?
后续就是找到每天的这几个状态与前一天的这几个状态的递推关系,初始化正确,从前向后遍历即可,最后取最后一天,或最后一天的最大值即可。欢迎大家多多交流!