买卖股票的最佳时机 II
1.题目描述
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。
注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。
示例 1:
示例 2:
示例 3:
2.思路
只要当天的价格比前一天高,就可以卖出去,然后把所有收益累加。
3.代码
class Solution {
public:
int maxProfit(vector<int>& prices) {
int maxprofit = 0;
for(int i = 1;i < prices.size();++i){
if(prices[i] > prices[i-1]){
maxprofit += prices[i] - prices[i-1];//只要当前价格比前一天价格高就可以卖
}
}
return maxprofit;
}
};
4.复杂度分析
时间复杂度:O(n)
空间复杂度:O(1)