class Solution {
public int maxProfit(int k, int[] prices) {
int n = prices.length;
int[] buyArr = new int[k];
int[] sellArr = new int[k];
for (int i = 0; i < k; i++) {
buyArr[i] = -prices[0];
}
for (int i = 1; i < n; i++) {
buyArr[0] = Math.max(buyArr[0], -prices[i]);
sellArr[0] = Math.max(sellArr[0], buyArr[0] + prices[i]);
for (int j = 1; j < k; j++) {
buyArr[j] = Math.max(buyArr[j], sellArr[j - 1] - prices[i]);
sellArr[j] = Math.max(sellArr[j], buyArr[j] + prices[i]);
}
}
int result = 0;
for (int i = 0; i < k; i++) {
if (sellArr[i] > result) {
result = sellArr[i];
}
}
return result;
}
}
04-03
144
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交