Say you has an array for which the i-th element is the price of a given-stock on day I.
There is now an array representing the price of the stock per day, where the position I represents is the price of the first day stock.
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).
Design an algorithm to calculate the maximum profit. You can trade with your own will, not limited to the number of trades. But you can't buy multiple times at the same time (you have to sell before you buy again).
Algorithm idea: only need to add up the price difference when all the prices rise, can draw the biggest profit.
1 classSolution {2 Public:3 intMaxprofit (vector<int>&prices) {4 intmaxp=0, n=prices.size ();5 for(intI=1, profit;i<n;i++){6profit=prices[i]-prices[i-1];7 if(profit>0) maxp+=profit;8 }9 returnMaxp;Ten } One};
122. Best time to Buy and Sell Stock II