力扣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。

相关推荐
扯淡的闲人20 分钟前
多语言编码Agent解决方案(4)-Eclipse插件实现
java·ide·eclipse
YuTaoShao20 分钟前
【LeetCode 每日一题】36. 有效的数独
linux·算法·leetcode
IT古董25 分钟前
【漫话机器学习系列】003.Agglomerative聚类
人工智能·算法·机器学习
杨杨杨大侠34 分钟前
Atlas Mapper 教程系列 (7/10):单元测试与集成测试
java·开源·github
zstar-_34 分钟前
【不背八股】12.十大排序算法
数据结构·算法·排序算法
叽哥37 分钟前
Kotlin学习第 7 课:Kotlin 空安全:解决空指针问题的核心机制
android·java·kotlin
吃着火锅x唱着歌41 分钟前
LeetCode 2110.股票平滑下跌阶段的数目
数据结构·算法·leetcode
guslegend1 小时前
Java面试小册(3)
java
派葛穆1 小时前
Unity-按钮实现场景跳转
java·unity·游戏引擎
弥巷1 小时前
【Android】Viewpager2实现无限轮播图
java