题目
- 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。
设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。
注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。
思路
- 画出折线图,可知,要想利益最大,即所有上坡阶段的差值(波峰-波谷)相加。
- 用代码实现,则从头到尾遍历,若差值大于0,则累加。
public class Solution {
public int MaxProfit(int[] prices) {
int maxProfit=0;
for(int i=0;i<prices.Length-1;i++)
{
maxProfit+=Math.Max((prices[i+1]-prices[i]),0);
}
return maxProfit;
}
}