题解 | #买卖股票的最好时机(二)#

买卖股票的最好时机(二)

https://www.nowcoder.com/practice/9e5e3c2603064829b0a0bbfca10594e9

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 计算最大收益
# @param prices int整型一维数组 股票每一天的价格
# @return int整型
#
class Solution:
    def maxProfit(self , prices: list[int]) -> int:
        # write code here
        length = len(prices)
        dp =[[0,0] for i in range(length)]

        dp[0][0]=0
        dp[0][1]=-prices[0]
        #分为2种情况,当天手里有股票,和没有股票,有股票可能是前天的或者今天买进的
        #没有可能是前天没有,今天也没有买或者前天没有今天买进了股票
        for i in range(1,length):
            dp[i][0]=max(dp[i-1][0],dp[i-1][1]+prices[i])
            dp[i][1]=max(dp[i-1][0]-prices[i],dp[i-1][1])
        

        return max(dp[length-1][0],dp[length-1][1])

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务