[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;
}
493

被折叠的 条评论
为什么被折叠?



