#3287. 股票交易最大利润+

股票交易最大利润+

股票交易最大利润+

题目描述

给定一个长度为 N 的数组,数组中的第 i 个数字表示一个给定股票在第 i 天的价格。

设计一个算法来计算你所能获取的最大利润,交易需遵循以下规则:

  1. 不能同时参与多笔交易(必须在再次购买前出售掉之前的股票)
  2. 卖出股票后,无法在第二天买入股票(冷冻期为 1 天)

输入格式

  • 第一行包含整数 N
  • 第二行包含 N 个不超过 10000 的非负整数,表示股票每日价格数组

输出格式

输出一个整数,表示最大利润

数据范围

1 ≤ N ≤ 10⁵

输入样例

5
1 2 3 0 2

输出样例

3

样例解释

交易状态序列:[买入, 卖出, 冷冻期, 买入, 卖出]

  • 第一笔交易:第1天买入(价格=1),第2天卖出(价格=2),利润=1
  • 冷冻期:第3天
  • 第二笔交易:第4天买入(价格=0),第5天卖出(价格=2),利润=2
    总利润 = 1 + 2 = 3

补充说明:

  1. 题目重点考察冷冻期对交易策略的影响
  2. 需要设计三维状态来区分不同持有/卖出状态
  3. 时间复杂度应优化至O(N)级别
  4. 适合考察状态机动态规划的应用能力
  5. 示例清晰地展示了冷冻期如何影响交易决策
  6. 题目来自LeetCode