2023.8.21
文章来源:https://www.toymoban.com/news/detail-662951.html
这道题是 买卖股票的最佳时机III 的升级版,即买卖次数限制为k次,做法和上一篇如法炮制,直接看代码:文章来源地址https://www.toymoban.com/news/detail-662951.html
class Solution {
public:
int maxProfit(int k, vector<int>& prices) {
vector<vector<int>> dp(prices.size(),vector<int>(k*2));
//初始化,偶数为持股,奇数为不持股
for(int i=0; i<k*2; i++)
{
if(i % 2 == 0) dp[0][i] = -prices[0];
else dp[0][i] = 0;
}
// 遍历
for(int i=1; i<prices.size(); i++)
{
dp[i][0] = max(dp[i-1][0] , -prices[i]);
for(int j=1; j<k*2; j++)
{
if(j % 2 == 0) dp[i][j] = max(dp[i-1][j] , dp[i-1][j-1]-prices[i]); // 偶数为持股状态
else dp[i][j] = max(dp[i-1][j] , dp[i-1][j-1]+prices[i]);
}
}
return dp[prices.size()-1][k*2-1];
}
};
到了这里,关于leetcode 188. 买卖股票的最佳时机 IV的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!