[LeetCode]122. Best Time to Buy and Sell Stock II

来源:互联网 发布:python 绝技 目录 编辑:程序博客网 时间:2024/06/05 00:46

[LeetCode]122. Best Time to Buy and Sell Stock II

题目描述

这里写图片描述

思路

I的后续
将数组分为几个小部分,
划分标准是 [i] < [i - 1](划分原因可以给出数学解释,较简单)
之后每个部分使用之前的思路即可
参考 [LeetCode]121. Best Time to Buy and Sell Stock

代码

#include <iostream>#include <vector>#include <algorithm>using namespace std;class Solution {public:    int maxProfit(vector<int>& prices) {        int maxCur = 0, maxAll = 0, res = 0;        for (int i = 1; i < prices.size(); ++i) {            maxCur = max(0, maxCur += prices[i] - prices[i - 1]);            maxAll = max(maxCur, maxAll);            if (prices[i] - prices[i - 1] < 0 || i == prices.size() - 1) {                res += maxAll;                maxAll = 0;                maxCur = 0;            }        }        return res;    }};int main() {    vector<int> prices = { 3,2,6,5,0,3 };    Solution s;    cout << s.maxProfit(prices) << endl;    system("pause");    return 0;}
0 0