标签:tor 没有 turn size return amp 时机 应该 price
1 // 一次交易由买入和卖出构成,至少需要两天。所以说有效的限制 k 应该不超过 n/2,如果超过,就没有约束作用了,相当于 k = +infinity。 2 class Solution 3 { 4 public: 5 int maxProfit(int K, vector<int>& prices) 6 { 7 if(prices.empty()) return 0; 8 int n = prices.size(); 9 if(K > n/2) 10 { 11 vector<vector<int>> dp(n,vector<int>(2,0)); 12 dp[0][0] = 0; 13 dp[0][1] = -prices[0]; 14 for(int i = 1;i < n;i ++) 15 { 16 dp[i][0] = max(dp[i - 1][0],dp[i - 1][1] + prices[i]); 17 dp[i][1] = max(dp[i - 1][1],dp[i - 1][0] - prices[i]); 18 } 19 return dp[n - 1][0]; 20 } 21 vector<vector<vector<int>>> dp(n,vector<vector<int>>(K+1,vector<int>(2,0))); 22 23 for(int k = 1;k <= K;k ++) 24 { 25 dp[0][k][0] = 0; 26 dp[0][k][1] = -prices[0]; 27 } 28 29 for(int i = 1;i < n;i ++) 30 { 31 for(int k = 1;k <= K;k ++) 32 { 33 dp[i][k][0] = max(dp[i-1][k][0],dp[i-1][k][1] + prices[i]); 34 dp[i][k][1] = max(dp[i-1][k][1],dp[i-1][k-1][0] - prices[i]); 35 } 36 } 37 38 int res = dp[n-1][0][0]; 39 for(int k = 1;k <= K;k ++) 40 { 41 res = max(res,dp[n-1][k][0]); 42 } 43 return res; 44 } 45 };
标签:tor 没有 turn size return amp 时机 应该 price
原文地址:https://www.cnblogs.com/yuhong1103/p/12831969.html