LeetCode OJ

版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.csdn.net/xiezhihua120/article/details/33817395

Say you have an array for which the ith element is the price of a given stock on day i.

Design an algorithm to find the maximum profit. You may complete as many transactions as you like (ie, buy one and sell one share of the stock multiple times). However, you may not engage in multiple transactions at the same time (ie, you must sell the stock before you buy again).

分析:当纯数字分析不清楚的时候。採用数形结合。

本题求的是波浪线中上升段的和。这种话就比較好攻克了。



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

链表或数组迭代时。考虑初始情况,特别是 i = 0 和 i = 1的情况


原文地址:https://www.cnblogs.com/mqxnongmin/p/10800312.html