题目描述
Say you have an array for which the i th element is the price of a given stock on day i.
Design an algorithm to find the maximum profit. You may complete at most two transactions.(最多两次买卖)
Note:
You may not engage in multiple transactions at the same time (ie, you must sell the stock before you buy again).
class Solution { public: int maxProfit(vector<int> &prices) { if(prices.size()<=1) return 0; int buy1=INT_MIN; int sell1=0;//第一次卖时的利润 int buy2=INT_MIN; int sell2=0;//第二次卖时的利润,也就是总利润 for(int i=0;i<prices.size();++i) { buy1=max(buy1,-prices[i]); sell1=max(sell1,buy1+prices[i]); buy2=max(buy2,sell1-prices[i]); sell2=max(sell2,buy2+prices[i]); } return sell2; } };