本文主要是介绍代码随想录-动态规划11(123. 买卖股票的最佳时机 III、188. 买卖股票的最佳时机 IV),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
123. 买卖股票的最佳时机 III
class Solution {
public:int maxProfit(vector<int>& prices) {int m = prices.size();vector<vector<vector<int>>> dp(m, vector<vector<int>>(3, vector<int>(2)));dp[0][1][1] = -prices[0];dp[0][2][1] = -prices[0];for (int i=1; i<m; i++){for (int j=1; j<3; j++){dp[i][j][0] = max(dp[i-1][j][0], dp[i-1][j][1]+prices[i]);dp[i][j][1] = max(dp[i-1][j][1], dp[i-1][j-1][0]-prices[i]); }}return dp[m-1][2][0];}
};
188. 买卖股票的最佳时机 IV
class Solution {
public:int maxProfit(int k, vector<int>& prices) {int m = prices.size();vector<vector<vector<int>>> dp(m, vector<vector<int>>(k+1, vector<int>(2)));for (int i=1; i<k+1; i++) dp[0][i][1] = -prices[0];for (int i=1; i<m; i++){for (int j=1; j<k+1; j++){dp[i][j][0] = max(dp[i-1][j][0], dp[i-1][j][1]+prices[i]);dp[i][j][1] = max(dp[i-1][j][1], dp[i-1][j-1][0]-prices[i]);}}return dp[m-1][k][0];}
};
这篇关于代码随想录-动态规划11(123. 买卖股票的最佳时机 III、188. 买卖股票的最佳时机 IV)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!