leetcode -- Best Time to Buy and Sell Stock III TODO
Say you have an array for which the ith 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).
1 public class Solution { 2 public int maxProfit(int[] prices) { 3 // Start typing your Java solution below 4 // DO NOT write main() function 5 if(prices.length == 0){ 6 return 0; 7 } 8 int result = Integer.MIN_VALUE; 9 int[] profits = new int[prices.length]; 10 int min = Integer.MAX_VALUE, maxBeforeI = Integer.MIN_VALUE; 11 for (int i = 0; i < prices.length; i++) { 12 if (prices[i] < min) { 13 min = prices[i]; 14 } 15 if (prices[i] - min > maxBeforeI) { 16 maxBeforeI = prices[i] - min; 17 } 18 profits[i] = maxBeforeI; 19 } 20 int max = Integer.MIN_VALUE; 21 for (int i = prices.length - 1; i >= 0; i--) { 22 if (prices[i] > max) { 23 max = prices[i]; 24 } 25 26 int profit = max - prices[i]; 27 28 if (profit + profits[i] > result) { 29 result = profit + profits[i]; 30 } 31 } 32 return result; 33 } 34 }
m transactions solution not understand
http://discuss.leetcode.com/questions/287/best-time-to-buy-and-sell-stock-iii