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

Leetcode-Best Time to Buy and Sell Stock III

时间:2014-11-25 14:02:10      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   io   ar   color   os   sp   for   

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

Analysis:

We calculate two things:1. from day 0 to day i, what the maximum profit we can get by performing only one transcation. 2. from any day i to the end, what the maximum profit we can get by performing one transcation. We then find out the maximum profit by adding them up for each day.

Solution:

 1 public class Solution {
 2     public int maxProfit(int[] prices) {
 3         int len = prices.length;
 4         if (len==0 || len==1) return 0;
 5 
 6         int[] posProfit = new int[len];
 7         int[] negProfit = new int[len];
 8 
 9         int maxProfit = 0;
10         int curProfit = 0;
11         int minPrice = prices[0];
12         for (int i=0;i<len;i++){
13             if (minPrice>prices[i]) minPrice = prices[i];
14             curProfit = prices[i]-minPrice;
15             if (curProfit>maxProfit) maxProfit = curProfit;
16             posProfit[i] = maxProfit;
17         }
18 
19         maxProfit = 0;
20         curProfit = 0;
21         int maxPrice = prices[len-1];
22         for (int i=len-1;i>=0;i--){
23             if (maxPrice<prices[i]) maxPrice = prices[i];
24             curProfit = maxPrice-prices[i];
25             if (curProfit>maxProfit) maxProfit = curProfit;
26             negProfit[i]=maxProfit;
27         }
28 
29         int res = 0;
30         for (int i=0;i<len;i++)
31             if (res<posProfit[i]+negProfit[i]) res = posProfit[i]+negProfit[i];
32 
33         return res;
34     }
35 }

 

Leetcode-Best Time to Buy and Sell Stock III

标签:des   style   blog   io   ar   color   os   sp   for   

原文地址:http://www.cnblogs.com/lishiblog/p/4120725.html

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