前面我做过一个买卖股票,不能只能买卖一次,这里难度一下上来了,不仅可以多次买多次卖,而且卖了隔一天还不能买。。。嗯。。当然了,既然是这种问题,铁定的上动态规划。其实我觉得多买多卖并不是什么问题,比较复杂的是冷冻期这个问题。冷冻期这个问题只会影响到今天的持有股票产生影响,对不持有股票没有影响。这里我用0表示不持有,1表示持有。因为冷冻期的存在,这次要前两天都必须手动算出来,而没有冷冻期的时候只需要一天。
思路:假如今天不持有股票,那么今天的不持有股票的最大值要么是昨天也没有持有股票,要么是昨天持有股票,但是今天卖了的最大值。而假如今天持有股票,那么要么是昨天持有股票,要么是前天不持有股票,也就是说可能是前天卖了,或者前天没任何行为,不过都没有影响,因为昨天是不能卖股票的,因为昨天卖了的话今天就不能买了,冷冻期的原因,所以就是前天每持有股票加上今天买入股票,这两种情况的最大值作为今天持有股票的最大利润。
然后是比较今天持有股票和不持有股票谁的利润大,让这个利润和最大利润进行比较,更新最大利润。
代码如下: