您的位置:首页 > 其它

leetCode #122 Best Time to Buy and Sell Stock II

2015-09-01 15:16 218 查看
题目:数组第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;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: