class Solution {
public:
int maxProfit(vector<int> &prices) {
if (prices.size() == 0)
return 0;
int len = prices.size();
vector<int>firstHalf(len, 0);
vector<int>lastHalf(len, 0);
int Min = prices[0];
for (int i = 1; i < len ; i++)
{
Min=min(Min,prices[i]);
firstHalf[i] = max(firstHalf[i-1], prices[i] - Min);
}
int Max = prices[len - 1];
for (int i = len - 2; i >= 0; i--)
{
Max=max(Max,prices[i]);
lastHalf[i] = max(lastHalf[i+1], Max - prices[i]);
}
int result=0;
for (int i = 0; i < len; i++)
{
int tmp = firstHalf[i] + lastHalf[i];
if (tmp>result)
result = tmp;
}
return result;
}
};
【LeetCode】Best Time to Buy and Sell Stock III
最新推荐文章于 2022-07-03 21:43:22 发布