Leetcode 买卖股票的最佳时机 II

一开始以为是DP,一直往上面想,怎么都只能想到是O(n²)的复杂度。后来一想,总感觉是有钱赚马上就卖掉就好了,但是以为题意是当天卖了不能再买,转不过弯来,所以卡了好久。

思路:如果prices[i+1] > prices[i],就在第i天买然后在第i+1天卖出即可。不断统计返回。

class Solution {
public:
    int maxProfit(vector<int>& prices) {
        int ans = 0;
        for(int i = 1; i < prices.size(); ++i) {
            if(prices[i] > prices[i - 1])
                ans += prices[i] - prices[i - 1];
        }
        return ans;
    }
};

如果题目规定了当天卖出后不能买,会有影响吗?答案是否定的,因为我们上面这样确保了一个时间段只有一个股票在买卖,当天卖后可以再买其实就是相当于连续罢了,依然符合题意。

posted @ 2018-12-26 13:58  llzhh  阅读(76)  评论(0编辑  收藏  举报