题目描述:
解析:dp动态规划
由于不可以在相邻的房屋闯入,所以在当前位置 n 房屋可盗窃的最大值,要么就是 n-1 房屋可盗窃的最大值,要么就是 n-2 房屋可盗窃的最大值加上当前房屋的值,二者之间取最大值
动态规划方程:dp[n] = MAX( dp[n-1], dp[n-2] + num )
class Solution {public int rob(int[] nums) {int len = nums.length;if(len == 0) return 0;int[] dp = new int[len + 1];dp[0] = 0;dp[1] = nums[0];for(int i = 2; i <= len; i++) {dp[i] = Math.max(dp[i-1], dp[i-2] + nums[i-1]);}return dp[len];}}
