标签:
思路:
假设三天内的价格为1 2 3,那第一天买入,第三天卖出收益最大,等价做法是第一天买入第二天卖出,第二天买入,第三天卖出。
假设三天内价格为3 2 1,那就没有收益了。
假设三天内的价格为2 1 3,第二天买入,第三天卖出。
以上规律可以看出就是求出每一次的递增子序列的头和尾的差,也可以逐个求得即sum += prices[i] - prices[i - 1] > 0 ? prices[i] - prices[i - 1] : 0
class Solution {
public:
int maxProfit(vector<int> &prices) {
int sum = 0;
for (size_t i = 1; i < prices.size(); i++)
sum += prices[i] - prices[i - 1] > 0 ? prices[i] - prices[i - 1] : 0;
return sum;
}
};
Best Time to Buy and Sell Stock II
标签:
原文地址:http://www.cnblogs.com/flyjameschen/p/2777440dae5384907b439e2c55fb4c3d.html