力扣HOT100 - 198. 打家劫舍

解题思路:

动态规划

java 复制代码
class Solution {
    public int rob(int[] nums) {
        int len = nums.length;
        if (nums == null || len == 0) return 0;
        if (len == 1) return nums[0];
        int[] dp = new int[len];
        dp[0] = nums[0];
        dp[1] = Math.max(nums[0], nums[1]);
        for (int i = 2; i < len; i++) {
            dp[i] = Math.max(dp[i - 2] + nums[i], dp[i - 1]);
        }
        return dp[len - 1];
    }
}

为什么不是int[] dp=new int[n+1];

下标从0开始就用new int[n]就行,如果从1开始会越界才会加1。

相关推荐
重生之我是Java开发战士2 小时前
【优选算法】模拟算法:替换所有的问号,提莫攻击,N字形变换,外观数列,数青蛙
算法
仟濹2 小时前
算法打卡 day1 (2026-02-06 周四) | 算法: DFS | 1_卡码网98 可达路径 | 2_力扣797_所有可能的路径
算法·leetcode·深度优先
yang)2 小时前
欠采样时的相位倒置问题
算法
南极企鹅2 小时前
springBoot项目有几个端口
java·spring boot·后端
历程里程碑2 小时前
Linux20 : IO
linux·c语言·开发语言·数据结构·c++·算法
A尘埃2 小时前
物流公司配送路径动态优化(Q-Learning算法)
算法
天若有情6732 小时前
【自研实战】轻量级ASCII字符串加密算法:从设计到落地(防查岗神器版)
网络·c++·算法·安全·数据安全·加密
清风拂山岗 明月照大江2 小时前
Redis笔记汇总
java·redis·缓存
xiaoxue..3 小时前
合并两个升序链表 与 合并k个升序链表
java·javascript·数据结构·链表·面试
忧郁的Mr.Li3 小时前
SpringBoot中实现多数据源配置
java·spring boot·后端