继续上一篇的基础动态规划,这篇讲一点难的,也差不多到我的上限了…这道题目的状态有多种定义方式,本文讲的只是我的理解,各位看官多担待,有问题我们多讨论。
与前一道题目一样,这道题目我们也可以分为三种状态下的最大受益,分别是:
- Sell:即今天卖或者不卖股票,哪个能获得最大受益?
- Buy:即今天买或者不买股票,哪个能获得最大受益?
- Cold:今天是否进入冷冻期,哪个能获得最大受益?
这三种状态可以如下进行状态解析:
1、我这里定义的Sell,只能是从Buy状态来的,只有买了才能卖。如果今天卖掉,那么就是要在前一天Buy的最大收益上再加上今天的股票价格。那么让当前的Sell取到最大值的操作就是:sell=Math.max(pre_sell,pre_buy+price[i])
2、Buy状态,只能是从Cold状