C语言 | Leetcode C语言题解之第123题买卖股票的最佳时机III

题目:

题解:

cpp 复制代码
#define max(a, b) ((a) < (b) ? (b) : (a))

int maxProfit(int* prices, int pricesSize) {
    int buy1 = -prices[0], sell1 = 0;
    int buy2 = -prices[0], sell2 = 0;
    for (int i = 1; i < pricesSize; ++i) {
        buy1 = max(buy1, -prices[i]);
        sell1 = max(sell1, buy1 + prices[i]);
        buy2 = max(buy2, sell1 - prices[i]);
        sell2 = max(sell2, buy2 + prices[i]);
    }
    return sell2;
}
相关推荐
从零开始的嵌入式之旅7 小时前
day31
linux·c语言·经验分享·笔记·嵌入式硬件
Horn Still Sounds7 小时前
Linux系统编程进阶:进程回收、程序替换与多线程并发模型
linux·运维·服务器·c语言
Tisfy11 小时前
LeetCode 1927.求和游戏:抵消+看最值
java·leetcode·游戏·题解·博弈论
玖玥拾11 小时前
LeetCode 125 验证回文串
算法·leetcode
xu_wenming15 小时前
嵌入式软件架构中的6种解耦艺术
c语言·驱动开发·嵌入式硬件·架构
DevHub19 小时前
CANopen 教程:STM32 实现 CANopen 从站,3 个回调替代手写对象字典
c语言·驱动开发·stm32·单片机·嵌入式硬件·mcu
玖玥拾20 小时前
LeetCode 392 判断子序列
笔记·算法·leetcode
不灭的黄金瞳12321 小时前
C语言手写顺序表
c语言·开发语言·数据结构
重生之后端学习1 天前
239. 滑动窗口最大值[困难]✅
java·数据结构·算法·leetcode·职场和发展
老当益壮梁奶奶1 天前
Linux 软件编程学习笔记(六):线程编程入门与实践
linux·c语言·c++·笔记·学习