Question:
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).
Analysis:
Title Description: An array of integers is given, and the first element represents the stock price of day I. Design an algorithm to get the maximum profit, unlike the first version, the deal allows multiple transactions, but must be guaranteed to sell before buying the stock.
Idea: Start thinking whether to use the idea of dynamic planning, and later found that the topic is to divide the original array into a small crest trough, and each crest and trough the difference between the value can be used as a profit.
Answer:
Public classSolution { Public intMaxprofit (int[] prices) { if(Prices.length = = 0 | | prices.length = = 1) return0; intProfit = 0; for(intI=1; i<prices.length; i++) { intdiff = prices[i]-prices[i-1]; if(diff > 0) {Profit+=diff; } } returnprofit; }}
Leetcode--best time to Buy and Sell Stock II