public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param prices int整型一维数组
* @param k int整型
* @return int整型
*/
public int maxProfit (int[] prices, int k) {
if (prices.length <= 1 || k == 0) {
return 0;
}
int len = prices.length;
int[] buy = new int[len + 1];
int[] sell = new int[len + 1];
Arrays.fill(buy, -prices[0]);
Arrays.fill(sell, 0);
for (int p : prices) {
for (int i = 1; i <= k; i++) {
buy[i] = Math.max(buy[i], sell[i - 1] - p);
sell[i] = Math.max(sell[i], buy[i] + p);
}
}
return sell[k];
}
}