Say you had an array for which the ith element was the price of a given stock on day I.
Design an algorithm to find the maximum profit. You could complete as many transactions as (ie, buy one and sell one share of the stock multiple times). However, engage in multiple transactions for the same time (ie, you must sell the stock before you buy again).
1 classSolution {2 Public:3 intMaxprofit (vector<int>&prices) {4 if(Prices.empty ())5 return 0;6 intPrice = prices[0];7 intprofit=0;8 for(Auto it = Prices.begin (); It!=prices.end (); + +it)9 {Ten if(price<*it) OneProfit + = *it-Price ; APrice = *it; - } - returnprofit; the } -};
is similar to the maximal subsequence idea. Here is the day before and the day after the comparison, if the day before the price is less than the first buy after the sale, otherwise this is not traded.
best time to Buy and Sell Stock II