LeetCode 121. 买卖股票的最佳时机 Best Time to Buy and Sell Stock 《剑指offer》第六十三题:股票的最大利润

 时间复杂度O(n),需遍历一边数组。空间复杂度O(1)。

class Solution {
public:
    int maxProfit(vector<int>& prices) {
        if (prices.size() < 2) return 0;
        int min = prices[0];  //第一天买入
        int difmax = max(0, prices[1] - min); //设置前两天作为最大利润

        for (int i = 2; i < prices.size(); ++i)
        {
            if (prices[i - 1] < min)  //更新买入最小值
                min = prices[i - 1];
            if (prices[i] - min > difmax)
                difmax = prices[i] - min;
        }
        return difmax;
    }
};

类似题目:《剑指offer》第六十三题:股票的最大利润

猜你喜欢

转载自www.cnblogs.com/ZSY-blog/p/12963386.html
今日推荐