码迷,mamicode.com
首页 > 其他好文 > 详细

Problem Best Time to Buy and Sell Stock III

时间:2014-07-07 16:05:24      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   color   strong   os   

Problem Description:

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).

 

 Solution:
 1  public int maxProfit(int[] prices) {
 2         if (prices.length <= 1) return 0;
 3 
 4         int[] profit = new int[prices.length + 1];
 5         int maxProfit = 0;
 6         int low = prices[0];
 7         for (int i = 1;  i < prices.length; i++) {
 8             if (low > prices[i]) low = prices[i];
 9             maxProfit = Math.max(maxProfit, prices[i] - low);
10             profit[i] = maxProfit;
11         }
12         maxProfit = 0;
13         int st = prices[prices.length - 1];
14         for (int i = prices.length - 2; i >= 0; i--) {
15             maxProfit = Math.max(maxProfit, profit[i] + st - prices[i]);
16             st = Math.max(st, prices[i]);
17         }
18 
19         return maxProfit;
20     }

 

Problem Best Time to Buy and Sell Stock III,布布扣,bubuko.com

Problem Best Time to Buy and Sell Stock III

标签:des   style   blog   color   strong   os   

原文地址:http://www.cnblogs.com/liew/p/3815120.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!