例 :1 5 8 4 2 3 6 4 10 7 3 2 1 6
对于这个样例来说,最优的交易应该是:
第1天买,第3天卖
第5天买,第7天卖
第8天买,第10天卖
第13天买,第14天卖
我们再观察可以发现,其实可以简化成,只要是两天之间是上涨的,那我们就要这一段的收益。
c++
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;
}
};java
import java.util.*;
public class Solution {
public int maxProfit (int[] prices) {
int ans = 0;
for(int i = 1 ; i < prices.length ; i++)
{
if(prices[i]>prices[i-1])
{
ans+= prices[i]-prices[i-1];
}
}
return ans;
}
}python
class Solution:
def maxProfit(self , prices ):
# write code here
ans = 0;
Len = len(prices)
for i in range(1,Len):
if prices[i]>prices[i-1]:
ans+= prices[i]-prices[i-1];
return ans;
京公网安备 11010502036488号