方法一:我的解法
先上代码:
我的思路:这题和简单版本的区别在于不规定只能购买一次,所以我们不需要在最低点买入,只需要使利益最大化,所以只要第二天有收益就考虑一笔交易,如果售价下滑就在前一天卖掉,注意如果遍历到最后一个还未卖出的话直接卖出即可。
想了想,我这个可能属于写复杂了的贪心。
方法二:贪心算法
标准的贪心算法和上面的区别是不进行持有的标记,只寻找有收益的区间,并对收益相加。
方法三:动态规划
这个做法有点绕,有点难想,参考官方的回答:
先上代码:
我的思路:这题和简单版本的区别在于不规定只能购买一次,所以我们不需要在最低点买入,只需要使利益最大化,所以只要第二天有收益就考虑一笔交易,如果售价下滑就在前一天卖掉,注意如果遍历到最后一个还未卖出的话直接卖出即可。
想了想,我这个可能属于写复杂了的贪心。
标准的贪心算法和上面的区别是不进行持有的标记,只寻找有收益的区间,并对收益相加。
这个做法有点绕,有点难想,参考官方的回答: