首页 > 代码库 > LeetCode\EPI "Best Time to Buy and Sell Stock"

LeetCode\EPI "Best Time to Buy and Sell Stock"

Also the very first problem on EPI. 

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);        int prof1 = maxProfit(v1);        vector<int> v2; v2.assign(prices.begin() + len1, prices.end());        int prof2 = maxProfit(v2);        auto i1 = std::min_element(v1.begin(), v1.end());        int min1 = *i1;        auto i2 = std::max_element(v2.begin(), v2.end());        int max1 = *i2;        int prof3 = max1 - min1;        return std::max(std::max(prof1, prof2), prof3);    }};