一、题目
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。
设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。
注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。
二、贪心算法分析
对于题目,第 0 天买入,第 3天卖出,利润为:prices[3]-prices[0]
可以分解为:
(prices[3]-prices[2])+(prices[2]-prices[1])+(prices[1]-prices[0])
所以,我们只需要收集每天的正利润就可以,收集正利润的区间,就是股票的买卖区间,而且我们关注的是最终的利润,也不需要记录区间。
这也就是贪心所贪之处,局部最优(收集每天的正利润),达到全局最优(求得最大利润)
三、代码