动态规划

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
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  •   为了准备三月份蓝桥杯的比赛和提高下自己数据结构和算法方面的水平,所以开始在leetcode上刷起了题。刚刚开始...
    冯宇祺阅读 3,679评论 0 5
  • 【动态规划】,Dynamic Programming, DP过程:每次决策依赖于当前状态,又随即引起状态的转移。一...
    hellomyshadow阅读 571评论 0 0
  • 动态规划主要思想: 如果需要解决一个给定的问题,我们需要解决这个问题的子问题,再根据子问题的解得到原问题的解,可以...
    乔豆一麻袋阅读 300评论 0 0
  • 动态规划入门 动态规划(Dynamic programming, 简称DP), 通过把原问题分解为相对简单的子问题...
    周闖阅读 819评论 0 1
  • 和分治法一样,动态规划(dynamic programming)是通过组合子问题而解决整个问题的解。 分治法是将问...
    Teci阅读 5,754评论 0 70

友情链接更多精彩内容