Skip to content
On this page

309. 最佳买卖股票时机含冷冻期

原题链接:LeetCode 309. 最佳买卖股票时机含冷冻期

题目描述

给定一个整数数组prices,其中第 * *prices[i] 表示第 i 天的股票价格 。​

设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):

- 卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。

**注意:**你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。

示例 1:

输入: prices = [1,2,3,0,2] **输出: **3 解释: 对应的交易状态为: [买入, 卖出, 冷冻期, 买入, 卖出]

示例 2:

输入: prices = [1] 输出: 0

提示:

- `1 <= prices.length <= 5000`

- `0 <= prices[i] <= 1000`

难度: Medium


题解代码

javascript
/**
 * @param {number[]} prices
 * @return {number}
 */
 var maxProfit = function(prices) {
  let buy = -prices[0]
  let sell = 0
  let profitFrozen = 0
  for (let i = 0; i < prices.length; i++) {
    const temp  = sell
    sell = Math.max(sell, buy + prices[i])
    buy = Math.max(buy, profitFrozen - prices[i])
    profitFrozen = temp
  }
  return sell
};

技术文档集合