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

相关推荐
web_Hsir38 分钟前
vue3.2 前端动态分页算法
前端·算法
有没有没有重复的名字1 小时前
线程安全的单例模式与读者写者问题
java·开发语言·单例模式
程序员的世界你不懂2 小时前
基于Java+Maven+Testng+Selenium+Log4j+Allure+Jenkins搭建一个WebUI自动化框架(4)集成Allure报表
java·selenium·maven
isNotNullX2 小时前
数据中台架构解析:湖仓一体的实战设计
java·大数据·数据库·架构·spark
皮皮林5512 小时前
“RPC好,还是RESTful好?”,这个问题不简单
java
Xiaouuuuua2 小时前
一个简单的脚本,让pdf开启夜间模式
java·前端·pdf
地平线开发者3 小时前
征程 6M 部署 Omnidet 感知模型
算法·自动驾驶
秋说3 小时前
【PTA数据结构 | C语言版】线性表循环右移
c语言·数据结构·算法
车车不吃香菇4 小时前
java idea 本地debug linux服务
java·linux·intellij-idea
浩瀚星辰20244 小时前
图论基础算法:DFS、BFS、并查集与拓扑排序的Java实现
java·算法·深度优先·图论