由于不可以在相邻的房屋闯入,所以在当前位置 n 房屋可盗窃的最大值,要么就是 n-1 房屋可盗窃的最大值,要么就是 n-2 房屋可盗窃的最大值加上当前房屋的值,二者之间取最大值
var rob = function(nums) {
const len = nums.length;
if(len === 0) return 0;
let dp=[];
dp[0] = 0;
dp[1] = nums[0];
for(let index=2;index<=len;index++){
dp[index] = Math.max(dp[index-1],dp[index-2]+nums[index-1]);
}
return dp[len]
};

本文介绍了一个经典的动态规划问题——房屋抢劫问题的解决方案。在这个问题中,窃贼不能连续抢劫相邻的房屋,因此需要找到一种策略,使得窃贼能够从一系列房屋中盗窃到的金额总和最大化。文章详细解释了如何使用动态规划算法来解决这个问题,并提供了一个具体的实现代码示例。
177

被折叠的 条评论
为什么被折叠?



