巴菲特~我想花钱买个教训~

股票问题系列通解(转载翻译) - 力扣(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天转移过来


买卖股票的最佳时机
https://brtulien.github.io/2023/10/02/买卖股票的最佳时机/
作者
Brtulien
发布于
2023年10月2日
更新于
2024年7月1日
许可协议