LeetCode买卖股票的最佳时机Ⅱ(Python)

题目

LeetCode买卖股票的最佳时机Ⅱ(Python)
LeetCode买卖股票的最佳时机Ⅱ(Python)

解题思路

注意审题,必须在再次购买前出售掉之前的股票。

想法和上一题一样,现在还是开着天眼的状态。

LeetCode买卖股票的最佳时机Ⅱ(Python)

我用几个例子来说明为什么这么算是对的。prices=[1,5],假设现在我第一天1的时候买入,然后第二天碰到5,按算法我应该卖出了,现在就两种情况,要不第三天比5大,要不第三天比5小,如果等于5可以忽略这一天。

①比5大:prices=[1,5,6],此时我的最低价在第一次卖出之后更新为5,我第三天发现还在涨,那我就回到昨天,卖出的同时又买入,然后今天再卖出一次。

②比5小:prices=[1,5,2],如果接下去一直跌,那也没有讨论的必要了,所以假设第四天涨了,prices=[1,5,2,7],那我在1买入5卖出然后2买入7卖出的总利润,比在1买入7卖出要大,所以这个算法是对的。

执行结果为:
LeetCode买卖股票的最佳时机Ⅱ(Python)