Tony's Log

Algorithms, Distributed System, Machine Learning

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

No limit to transaction count, so it is a recursive sum calculation. Take care of boundary condition.

class Solution {
public:
    int maxProfit(vector<int> &prices) {
        size_t len = prices.size();
        if (len <= 1) return 0;
        else if (len == 2)
        {
            if (prices[0] >= prices[1]) return 0;
            else return prices[1] - prices[0];
        }
        int len1 = len / 2;
        int len2 = len - len1;

        vector<int> v1; v1.assign(prices.begin(), prices.begin() + len1 + 1);
        int prof1 = maxProfit(v1);
        vector<int> v2; v2.assign(prices.begin() + len1, prices.end());
        int prof2 = maxProfit(v2);        
        return prof1 + prof2;
    }
};

 

posted on 2014-08-08 14:31  Tonix  阅读(160)  评论(0)    收藏  举报