首先思考一个问题,假如让我们手动进行操作会怎么操作?
比如[1, 4, 2, 1, 8, 7, 9, 2]
,直观的感受是遇到递增序列即执行买入卖出,如:
1, 4
递增,1买4卖1, 8
递增,1买8卖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; } };