89. 打家劫舍【动态规划】

题目

题解

python 复制代码
class Solution:
    def rob(self, nums: List[int]) -> int:
        N = len(nums)
        # 定义状态: dp[i]表示从第i间房子开始抢劫,最多能抢到的金额
        dp = [0 for i in range(N)]

        for i in range(N-1, -1, -1):
            if i == N-1:
                dp[i] = nums[i]
            elif i == N-2:
                dp[i] = max(nums[i], nums[i+1])
            else:
                dp[i] = max(dp[i+1], nums[i] + dp[i+2])

        return dp[0]
相关推荐
吴可可12313 分钟前
Win7上开发CAD2004自定义实体全解析
c++·算法
YXXY31315 分钟前
二叉树中的深搜算法介绍
算法
zz345729811316 分钟前
C语言中字符串常量存储位置
c语言·开发语言·算法·青少年编程
noipp17 分钟前
推荐题目:洛谷 P16510 [GKS 2015 #C] gRanks
java·c语言·开发语言·c++·python·算法
菜菜的顾清寒26 分钟前
力扣HOT100(50)动态规划-零钱兑换
算法·leetcode·动态规划
周末也要写八哥30 分钟前
三分钟读懂:如何解决做题数量不足的问题?
算法
8Qi831 分钟前
LeetCode 148. 排序链表 —— 解法二:自底向上归并(迭代,O(1) 空间)
数据结构·算法·leetcode·链表·归并·迭代
凯瑟琳.奥古斯特33 分钟前
力扣1235完整解法详解
java·开发语言·leetcode
嘿黑嘿呦34 分钟前
数据结构-图论-最小生成树
数据结构·算法·图论
Justice Young42 分钟前
算法分析与设计实验:贪心法求解0/1背包问题的局限性
算法