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]
相关推荐
itzixiao7 小时前
L1-058 6翻了(15分)[java][python]
java·开发语言·python·算法
念何架构之路7 小时前
数组和切片实战
数据结构·算法·排序算法
重生之我是Java开发战士7 小时前
【数据结构】AVL树解析
数据结构·算法
小π军7 小时前
STL之multiset 常见API介绍
数据结构·c++·算法
踩坑记录7 小时前
leetcode hot100 1143. 最长公共子序列 mediuim 递归优化
leetcode
研究点啥好呢7 小时前
Momenta算法工程师面试题精选:10道高频考题+答案解析
人工智能·算法·求职招聘·面试笔试
Resistance丶未来7 小时前
DeepSeek-V4 新手快速上手指南
数据结构·python·gpt·算法·机器学习·claude·claude 4.6
无限进步_8 小时前
【C++】寻找数组中出现次数超过一半的数字:三种解法深度剖析
开发语言·c++·git·算法·leetcode·github·visual studio
comli_cn8 小时前
HMM算法
线性代数·算法
Via_Neo8 小时前
Nim Game
算法