#3909. 双重交易探秘-难

双重交易探秘-难

🐰😺💹 兔猫信奥学院的双重交易探秘 💹😺🐰

在兔猫信奥学院的金融演算殿,加菲老师展示了一条由 nn 根魔法石柱排列的股价曲线——第 ii 根石柱上的刻纹数值恰好是第 ii 天的股票价格。
“孩子们,”他缓缓说道,“你们最多可以完成两笔‘买入→卖出’的魔法交易,但同一时间只能持有一股,而且必须在再次买入前先卖出之前的。设计一种策略,使你们总共获得的净利润最大。告诉我,你们能赚到多少?”


输入格式

第一行:整数 n,表示天数(股价数组长度)。
第二行:n 个整数 prices[i],用空格分隔,表示第 i 天的股票价格。
  • 1n1061 \le n \le 10^6
  • 0prices[i]1060 \le \text{prices}[i] \le 10^6

输出格式

输出一个整数,表示在至多两笔交易限制下能够获得的最大净利润。

样例 1

8
3 3 5 0 0 3 1 4
6
  • 解释:
    • 第 3 天(价格 0)买入,第 5 天(价格 3)卖出,获利 30=33-0=3
    • 第 6 天(价格 1)买入,第 7 天(价格 4)卖出,获利 41=34-1=3
      总利润 = 3+3=63+3=6

样例 2

5
1 2 3 4 5
4
  • 解释:
    • 最好在第 0 天买入,第 4 天卖出,单笔交易获利 51=45-1=4
    • 第二笔交易无法再进行,总利润 = 4。

样例 3

5
7 6 4 3 1
0
  • 解释:
    股价持续下跌,不交易最优,利润 0。

🎓 加菲老师寄语:
通过维护两笔交易的买入和卖出状态,你们可以在一次遍历中轻松求解双重交易下的最大利润!祝投资顺利,算法进阶!