美文网首页
动态规划

动态规划

作者: cornbig | 来源:发表于2021-01-31 17:45 被阅读0次

    dp可以解决的问题 (1)最值(2)方案数 (3)可行性
    dp的方向性 :坐标型动态规划,前缀型动态规划
    dp[坐标] = 行走到这个坐标的最优值
    dp[i] max{= dp[i-2] + a[i]
    = dp[i-3] .
    ...
    = dp[0]}
    1.打劫房屋

    class Solution:
        def rob(self, nums: List[int]) -> int:
            # 空间优化 动态规划
            if not nums:
                return 0
            n = len(nums)
            if n == 1:
                return nums[0]
            # a 是dp[i-2], b 是 dp[i-1]
            a , b = 0, nums[0]
            for i in range(1,n):
                dp = max(a + nums[i], b)
                a = b
                b = dp
            return dp
    

    相关文章

      网友评论

          本文标题:动态规划

          本文链接:https://www.haomeiwen.com/subject/jfqktltx.html