309. 最佳买卖股票时机含冷冻期

时间:2020-05-05 19:46:36   收藏:0   阅读:45
 1 class Solution 
 2 {
 3 public:
 4     int maxProfit(vector<int>& prices) 
 5     {
 6         if(prices.size() < 2) return 0;
 7         int n = prices.size();
 8         vector<vector<int>> dp(n,vector<int>(2,0));
 9 
10         dp[0][0] = 0;
11         dp[0][1] = -prices[0];
12         dp[1][0] = max(0,-prices[0] + prices[1]);
13         dp[1][1] = max(-prices[0],-prices[1]);
14         for(int i = 2;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 - 2][0] - prices[i]);
18         }
19         return dp[n - 1][0];
20     }
21 };

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!