经过分析,此题适用贪心策略:越早卖出获得的总利润越大。所以算法思想是:在第 i 天买入,若第 j 天(j > i)prices[j] - prices[i] > 0, profit += prices[j] - prices[i]。
class Solution:
def maxProfit(self, prices: List[int]) -> int:
n = len(prices)
sum = 0
for i in range(1,n):
if(prices[i]>prices[i-1]):
sum +=prices[i]-prices[i-1]
return sum
代码解释:
虽然肉眼可见1–13的利润最大,依照代码逻辑若后一天比前一天多则卖出,得出来的最大利润仍一样。
执行通过: