[leetcode_122]Best Time to Buy and Sell Stock II

哇这个题之前觉得好难啊,但是AC率好高。心里好郁结。为啥这个题我就是不会呢T_T
后来在昨天脑子一热把这个题的I A掉的情况下。一下子豁然开朗。
题意要求一定要先买再卖,卖了才能再买。你可以多次买卖问你最大收益。
这样的话天与天之间求差,然后为正的全部加上即可。
一次AC:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Solution {
public:
    int maxProfit(vector<int> &prices) {
        // Note: The Solution object is instantiated only once and is reused by each test case.
        int sum = 0;
        if(prices.size() <= 0)
            return sum;
        vector<int> dis(prices.size()-1);
        for(int i = 1;i < prices.size();i++)
        {
            dis[i-1] = prices[i] - prices[i-1];
        }
        for(int i = 0;i < dis.size();i++)
        {
            if(dis[i] > 0)
            {
                sum += dis[i];
            }
        }
        return sum;
    }
};
Licensed under CC BY-NC-SA 4.0