题目:数组第i个元素表示的是股票在第i天的价格,问最大的收益。要求必须先买后卖,可以进行任意次交易。
分析:只要有收益就进行买卖即可。
比如以下序列
1 2 9 3
我们可以看到,在1时买入,2时卖出,2时买入,9时再卖出,收益为8
而在1时买入,9时卖出,收益也为8
所以只要赚钱,不见得要找绝对差值最大的,因为买卖是无限次数的,只要能赚就买/卖即可。
答案:
class Solution {
public:
int maxProfit(vector<int>& prices) {
int gain = 0;
if (prices.size()<1)
return gain;
for (int i = 0; i< prices.size() - 1; i++){
if (prices[i] < prices[i+1])
gain += prices[i+1] - prices[i];
}
return gain;
}
};