LeetCode讲解篇之198. 打家劫舍

LeetCode讲解篇之198. 打家劫舍

文章目录

题目描述

题解思路

该问题可以通过递推来完成

递推公式:

前n间房的最大金额 = max(前n-1间房的最大金额, 前n-2间房的最大金额+第n-1间房的最大金额)

题解代码

go 复制代码
func rob(nums []int) int {
    if len(nums) == 0 {
        return 0
    }
    n := len(nums)
    dp := make([]int, n + 1)
    dp[0] = 0
    dp[1] = nums[0]
    for k := 2; k <= n; k++ {
        if dp[k-1] > dp[k-2] + nums[k-1] {
            dp[k] = dp[k-1]
        } else {
            dp[k] = dp[k-2] + nums[k-1]
        }
    }

    return dp[n]
}
相关推荐
Yzzz-F11 分钟前
CF2023D
c++·算法·dp
小小帅呀20 分钟前
学习 VLA 第6天:SWIN VIT算法原理以及复现
学习·算法
猎头南楼1 小时前
杭州算法工程师,偏大模型应用落地
算法
间歇性努力持续性发呆的野生快乐选手1 小时前
二分模板(整型,浮点型)
数据结构·c++·算法
evans在进步1 小时前
LeetCode 189 轮转数组:三次反转为什么能实现右旋?
数据结构·算法·leetcode
豆沙沙包?1 小时前
函数重载/类和对象(P14-P60)
前端·算法
lingchen19062 小时前
用MATLAB r2010b和r2016b求解微分方程组
开发语言·算法·matlab
无定义_2 小时前
Dijkstra——单源最短路径
算法·图论
weixin_307779132 小时前
AI生成代码的隐患与治理:人工审查流程及提示词驱动的修复策略
开发语言·人工智能·算法