198. 打家劫舍
题解
由于不可以在相邻的房屋闯入,所以在当前位置 n 房屋可盗窃的最大值,要么就是 n-1 房屋可盗窃的最大值,要么就是 n-2 房屋可盗窃的最大值加上当前房屋的值,二者之间取最大值
/**
* @param {number[]} nums
* @return {number}
*/
var rob = function(nums) {
//比较索引奇数相加的和与索引偶数相加的和
//不对 也有比如取索引1和4的情况
//采用动态规划
let dp=new Array(nums.length + 1)
dp[0]=nums[0]
dp[1]=Math.max(nums[0],nums[1])
for(let i=2 ; i < nums.length ; i++){
dp[i] = Math.max(dp[i-1],dp[i-2]+nums[i])
}
return dp[nums.length-1]
};