巴菲特~我想花钱买个教训~
股票问题系列通解(转载翻译) - 力扣(LeetCode)
首先,通用状态表示是dp[i] [k] [0]和dp[i] [k] [1]表示第i天时 交易k次 手上有0/1只股票的时候的最大利润
状态计算,dp[i] [k] [0] = max(dp[i - 1] [k] [0], dp[i - 1] [k] [1] + price[i]])
第i天手上有0只股票的最大收益为 第i - 1天手上有0只股票 和 第i - 1天手上有1只股票并且卖掉的最大收益
dp[i] [k] [1] = max(dp[i - 1] [k] [1], dp[i - 1] [k - 1] [0] - price[i]])
第i天手上有1只股票的最大收益为 第i - 1天手上有1只股票 和 第i - 1天手上有0只股票并且买入的最大收益 注意 要减掉一次交易次数
当k >= n // 2时 就相当于k无限 因为买入卖出算一次交易 那么最多前面一半全买入 后面一半全卖出
手续费直接减掉
冷冻期就跳过一天 加入i - 2天这个变量 买入的时候要从第i - 2天转移过来