首先思考一个问题,假如让我们手动进行操作会怎么操作?

比如[1, 4, 2, 1, 8, 7, 9, 2],直观的感受是遇到递增序列即执行买入卖出,如:

  1. 1, 4递增,1买4卖
  2. 1, 8递增,1买8卖
  3. 7,9递增,7买9卖

代码如下:

//
// Created by jt on 2020/9/24.
//
#include <vector>
using namespace std;

class Solution {
public:
    /**
     *
     * @param prices int整型vector
     * @return int整型
     */
    int maxProfit(vector<int>& prices) {
        // write code here
        if (prices.size() < 1) return 0;
        int res = 0;
        for (int i = 1; i < prices.size(); ++i) {
            if (prices[i] > prices[i-1]) res += prices[i] - prices[i-1];
        }
        return res;
    }
};