根据题目描述,小偷不能偷相邻的两家,先初始化dp前两位
dp[0] = nums[0];
dp[1] = nums[0] > nums[1] ? nums[0] : nums[1];
dp方程:dp[i] = (dp[i - 2] + nums[i]) > dp[i - 1] ? (dp[i - 2] + nums[i]) : dp[i - 1];
源代码:
function rob(nums) {
const len = nums.length;
const dp = new Array(len);
dp[0] = nums[0];
dp[1] = nums[0] > nums[1] ? nums[0] : nums[1];
for(let i = 2; i < len; ++i) {
dp[i] = (dp[i - 2] + nums[i]) > dp[i - 1] ? (dp[i - 2] + nums[i]) : dp[i - 1];
}
return dp[len - 1];
};