您的位置:首页 > 其它

LeetCode 122. Best Time to Buy and Sell Stock II

2016-07-22 02:04 441 查看
122.
Best Time to Buy and Sell Stock II

My Submissions QuestionEditorial Solution

Total Accepted: 83388 Total Submissions: 198240 Difficulty: Medium

Say you have an array for which the ith element is the price of a
given stock on day i.

Design an algorithm to find the maximum profit. You may complete
as many transactions as you like (ie, buy one and sell one share of the stock multiple times). However, you may not engage in multiple transactions at the same time (ie, you must sell the stock before you buy again).

分析:贪心算法,在每一小段上升序列中最大差值累加得到结果。就是说在股票价格处于上升期的时候,在最低点买入,在最高点卖出。而且可知,每一小段的最大差值就是这段序列的最后一个点的价格减去这段序列第一个点的价格,与每一次从第一个点与第二点的差值一直累加所得结果相同:ans
+= prices[i] – prices[i – 1];

class Solution {
public:
int maxProfit(vector<int>& prices) {
int ans = 0;
for(int i = 1; i < prices.size(); i++) {
if(prices[i] > prices[i - 1])
ans += prices[i] - prices[i - 1];
}
return ans;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: