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

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

https://www.nowcoder.com/practice/4892d3ff304a4880b7a89ba01f48daf9

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

        dp[0][2][0]=0
        dp[0][1][0]=-99999999
        dp[0][0][0]=-99999999
        dp[0][1][1]=-prices[0]
        dp[0][0][1]=-99999999
        dp[0][2][1]=-99999999

        for i in range(1,len(prices)):
            dp[i][2][0] = dp[i-1][2][0]
            dp[i][1][0] =  max(dp[i-1][1][0], dp[i-1][1][1]+prices[i])
            dp[i][2][1] = -99999999
            dp[i][1][1] =  max(dp[i-1][1][1], dp[i-1][2][0]-prices[i])
            dp[i][0][0] = max(dp[i-1][0][0], dp[i-1][0][1]+prices[i])
            dp[i][0][1] = max(dp[i-1][0][1], dp[i-1][1][0]-prices[i])
        
        return max(dp[-1][0][0],dp[-1][1][0])

全部评论

相关推荐

不愿透露姓名的神秘牛友
11-24 20:55
阿里国际 Java工程师 2.7k*16.0
程序员猪皮:没有超过3k的,不太好选。春招再看看
点赞 评论 收藏
分享
11-03 14:38
重庆大学 Java
AAA求offer教程:我手都抬起来了又揣裤兜了
点赞 评论 收藏
分享
喜欢走神的孤勇者练习时长两年半:池是池,发是发,我曾池,我现黑
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务