Java | Leetcode Java题解之第188题买卖股票的最佳时机IV

题目:

题解:

java 复制代码
class Solution {
    public int maxProfit(int k, int[] prices) {
        if (prices.length == 0) {
            return 0;
        }

        int n = prices.length;
        k = Math.min(k, n / 2);
        int[] buy = new int[k + 1];
        int[] sell = new int[k + 1];

        buy[0] = -prices[0];
        sell[0] = 0;
        for (int i = 1; i <= k; ++i) {
            buy[i] = sell[i] = Integer.MIN_VALUE / 2;
        }

        for (int i = 1; i < n; ++i) {
            buy[0] = Math.max(buy[0], sell[0] - prices[i]);
            for (int j = 1; j <= k; ++j) {
                buy[j] = Math.max(buy[j], sell[j] - prices[i]);
                sell[j] = Math.max(sell[j], buy[j - 1] + prices[i]);   
            }
        }

        return Arrays.stream(sell).max().getAsInt();
    }
}
相关推荐
Memory_荒年1 分钟前
Netty:从“网络搬砖”到“流水线大师”的奇幻之旅
java·后端
ChaseDreamRunner15 分钟前
如何用 NSSM 把 Jar 做成 Windows 服务
java·windows·jar
神の愛16 分钟前
java的Aop
java·开发语言
左左右右左右摇晃28 分钟前
ConcurrentHashMap ——put + get
java·开发语言·笔记
啥咕啦呛41 分钟前
java打卡学习4:HashMap底层结构、扩容机制
java·学习·哈希算法
qq_297574671 小时前
K8s系列第十四篇:K8s 故障排查实战:常见故障定位与解决方法
java·docker·kubernetes
Flittly1 小时前
【SpringAIAlibaba新手村系列】(3)ChatModel 与 ChatClient 的深度对比
java·人工智能·spring boot·spring
2401_835792541 小时前
Java复习上
java·开发语言·python
alphaTao1 小时前
LeetCode 每日一题 2026/3/23-2026/3/29
服务器·windows·leetcode
小昭在路上……1 小时前
编译与链接的本质:段(Section)的生成与定位
java·linux·开发语言