← [ BACK_TO_NOTES ]

买卖股票的最佳时机(含冷冻期)

卖出后下一天禁止买入的股票 DP;区分持股、当日卖出与可在次日买入的休息状态。

#algorithm #snippet #growing #leetcode #dp

[!info] related notes 动态规划 区间 DP 与状态机 DP 买卖股票的最佳时机

买卖股票的最佳时机(含冷冻期)

题目链接:https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-with-cooldown/

状态设计

  • hold:今天结束后持股
  • sold:今天刚卖出
  • rest:今天结束后不持股、今天没有卖出,次日允许买入;可以由昨天卖出后今天休息得到

转移

newHold = max(oldHold, oldRest - price)
newSold = oldHold + price
newRest = max(oldRest, oldSold)

JavaScript

var maxProfit = function(prices) {
    if (prices.length === 0) return 0;
    let hold = -prices[0];
    let sold = -Infinity;
    let rest = 0;

    for (let i = 1; i < prices.length; i++) {
        const prevHold = hold;
        const prevSold = sold;
        const prevRest = rest;

        hold = Math.max(prevHold, prevRest - prices[i]);
        sold = prevHold + prices[i];
        rest = Math.max(prevRest, prevSold);
    }

    return Math.max(sold, rest);
};
创建于 2026/3/18 更新于 2026/10/7
Digital Biome
Access

键盘导航

j / k / ↑ / ↓
选择对象
Enter / o
打开选择
/ 或 Ctrl+K
全站搜索
i / f / 1–4
筛选当前列表
g → h / l / p / t / a
首页 / 笔记 / 项目 / 工具 / About
r → 1–9
打开所选对象的关联
u
返回上一页
Esc
关闭浮层 / 取消命令;输入框内清空文本