Say you has 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 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).
The difference between the topic and the previous question 121 is that you can make multiple purchases, if you encounter High>prices[i] will sell, and the low and high at the same time point to I.
Code:
1 intMaxprofit (vector<int>&prices)2 {3 if(prices.size () = =0|| Prices.size () = =1)4 return 0;5 intlow=prices[0],high=prices[0],profit=0;6 for(intI=1; I<prices.size (); i++)7 {8 if(prices[i]>High )9High=Prices[i];Ten Else One { Aprofit+=high-Low ; -low=Prices[i]; -High=Prices[i]; the } - } -profit+=high-Low ; - returnprofit; +}
122. Best time to Buy and Sell Stock II