添加链接描述
思路:
- 设置一个动态数组dp用来存放当前最大的利润
- 这个利润有两个来源:来源一是来自上一个最大利润;来源二是目前值减去最小买入价格
- 如何维护最小值?预设一个最小值然后将这个最小值每次和当前值比较
class Solution:
def maxProfit(self, prices: List[int]) -> int:
dp=[0]*len(prices)
minp=prices[0]
for i in range(1,len(prices)):
minp=min(minp,prices[i])
dp[i]=max(dp[i-1],prices[i]-minp)
return dp[-1]