image.png

思路

一定要确定好dp代表的含义,这样才能想出递推公式哈。
看了题解的dp含义,我自己可以得出递推公式
在遍历的时候,因为上一阶段做多了背包,第一时间就在想什么两重for循环,我晕

  1. var rob = function(nums) {
  2. let dp =new Array(nums.length).fill(0)
  3. dp[0] =nums[0]
  4. dp[1] =Math.max(nums[0],nums[1])
  5. for(let i=2;i<nums.length;i++){
  6. dp[i] =Math.max(dp[i-2]+nums[i],dp[i-1])
  7. }
  8. return dp[nums.length-1]
  9. };