题解 | #数据流中的中位数#

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

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

Python 动态规划

class Solution:
    def maxProfit(self , prices: List[int]) -> int:
        # write code here
        n = len(prices)
        dp = [ [0, 0] for _ in range(n) ]
        # dp[i][0]第i天持有股票后的最多现金
        # dp[i][1]第i天持有的最多现金
        dp[0][0] = -prices[0]
        dp[0][1] = 0
        
        for i in range(1, n):
            # 第i天持股票所剩最多现金 = max(第i-1天持股票所剩现金, 第i-1天持现金-买第i天的股票)
            dp[i][0] = max(dp[i-1][0], dp[i-1][1] - prices[i])
            # 第i天持有最多现金 = max(第i-1天持有的最多现金,第i-1天持有股票的最多现金+第i天卖出股票)
            dp[i][1] = max(dp[i-1][1], dp[i-1][1] + prices[i] - prices[i-1])
        
        return max(dp[n-1][0], dp[n-1][1])


全部评论

相关推荐

点赞 评论 收藏
分享
那一天的Java_J...:他本来公司就是做这个的,不就是正常的游戏客户端和服务器开发,软硬件联动,有啥恶心不恶心的,提前告诉你就是怕你接受不了,接受不了就没必要再往后走流程浪费时间,虽然这公司是一坨。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务