【剑指】-63.股票的最大利润

1、假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?
力扣链接
解题思路:动态规划
状态定义: dp[i]表示前i日的最大利润
转移方程: dp[i]=max(dp[i-1],price[i]-min(price[0:i]))
初始状态: dp[0]=0
返回值: dp[-1]

class Solution(object):
    def maxProfit(self, prices):
        if not prices: return 0
        dp=[0 for _ in range(len(prices))]
        dp[0]=0
        small=prices[0]#记录i日之前的最小值
        for i in range(1,len(prices)):
            if prices[i]<small:
                small=prices[i]
            dp[i]=max(dp[i-1],prices[i]-small)
        return dp[-1]
发布了46 篇原创文章 · 获赞 9 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43826596/article/details/105551626