188.买卖股票的最佳时机IV
不过度确实好难啊,不过是自己写的,就类比一下上一道题
class Solution {
public:
int maxProfit(int k, vector<int>& prices) {
vector<vector<int>>dp(prices.size(), vector<int>(2*k+1,0));
for(int j=0;j<k;j++)dp[0][2*j+1]=-prices[0];
for(int i=1;i<prices.size();i++){
for(int j=1;j<=k;j++){
dp[i][2*j-1] = max(dp[i - 1][2*j-2] - prices[i], dp[i - 1][2*j-1]);
dp[i][2*j] = max(dp[i - 1][2*j-1] + prices[i], dp[i - 1][2*j]); // 表示不持有
}
}
int res = -1;
for(int j=1;j<=k;j++)res=max(res,dp[prices.size()-1][2*j]);
return res;
}
};