[leetcode] 122. Best Time to Buy and Sell Stock II

网友投稿 270 2022-08-26

[leetcode] 122. Best Time to Buy and Sell Stock II

Description

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 (i.e., buy one and sell one share of the stock multiple times).

Note: You may not engage in multiple transactions at the same time (i.e., you must sell the stock before you buy again).

Example 1:

Input: [7,1,5,3,6,4]Output: 7Explanation: Buy on day 2 (price = 1) and sell on day 3 (price = 5), profit = 5-1 = 4. Then buy on day 4 (price = 3) and sell on day 5 (price = 6), profit = 6-3 = 3.

Example 2:

Input: [1,2,3,4,5]Output: 4Explanation: Buy on day 1 (price = 1) and sell on day 5 (price = 5), profit = 5-1 = 4. Note that you cannot buy on day 1, buy on day 2 and sell them later, as you are engaging multiple transactions at the same time. You must sell before buying again.

Example 3:

Input: [7,6,4,3,1]Output: 0Explanation: In this case, no transaction is done, i.e. max profit = 0.

分析

题目的意思为:设计一个算法求总的最大的收益,可以多次交易,但是一次交易完后,才能进行下一次交易

如果股价呈现递增的趋势,就可以盈利,然后就可以交易。这样的话,我们比较一下如果价格比上一次价格高的话,就直接交易,然后把盈利求和就是总的收益。

代码

class Solution {public: int maxProfit(vector& prices) { int sum=0; for(int i=1;iprices[i-1]){ sum+=prices[i]-prices[i-1]; } } return sum; }};

参考文献

​​[编程题]best-time-to-buy-and-sell-stock-ii​​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:这几个万科85后营销人用“雁南飞”征服珠海!
下一篇:[leetcode] 833. Find And Replace in String
相关文章

 发表评论

暂时没有评论,来抢沙发吧~