198.打家劫舍
var rob = function(nums) {
let dp = []
let n = nums.length
dp[0] = nums[0]
dp[1] = Math.max(nums[0],nums[1])
for(let i=2;i<n;i++){
dp[i] = Math.max(dp[i-2]+nums[i],dp[i-1])
}
return dp[n-1]
};
213.打家劫舍2
var rob = function(nums) {
let n = nums.length
if(n==0) return 0
if(n==1) return nums[0]
let dp1 = []
let dp2 = []
dp1[1] = nums[1]
dp1[2] = Math.max(nums[1],nums[2])
for(let i = 3;i<=n-1;i++){
dp1[i] = Math.max(nums[i]+dp1[i-2],dp1[i-1])
}
dp2[0] = nums[0]
dp2[1] = Math.max(nums[0],nums[1])
for(let j=2;j<=n-2;j++){
dp2[j] = Math.max(nums[j]+dp2[j-2],dp2[j-1])
}
return Math.max(dp1[n-1],dp2[n-2])
};