当前位置: 代码迷 >> 综合 >> leetcode 123. Best Time to Buy and Sell Stock III 股票最多两次买入、两次卖出的最大利润
  详细解决方案

leetcode 123. Best Time to Buy and Sell Stock III 股票最多两次买入、两次卖出的最大利润

热度:58   发布时间:2023-12-15 14:54:00.0

https://leetcode.com/problems/best-time-to-buy-and-sell-stock-iii/

数组的最大2子段和,允许在一天内买入又卖出,相当于不交易。因为题目规定的是最多交易两次,而不是必须交易两次。

class Solution {
public:int maxProfit(vector<int>& prices) {int n = prices.size();if(n<2) return 0;vector<int> f(n,0);vector<int> g(n,0);int i;int mini = prices[0];for(i=1;i<n;i++){mini=min(prices[i], mini);f[i]=max(prices[i]-mini, f[i-1]);}int maxi = prices[n-1];for(i=n-2;i>-1;i--){maxi=max(prices[i], maxi);g[i]=max(maxi-prices[i], g[i+1]);}int result = 0;for(i=0;i<n;i++){result = max(result, f[i]+g[i]);}return result;}
};

 

 

 

  相关解决方案