用DP思维很好解决 注意终止条件 这里添加了一个数组 length = nums.length + 1;
代码:
public class Solution {
public int rob(int[] nums) {
int[] money = new int[nums.length+1];
if(nums.length == 0) return 0;
for(int i = 0; i <= nums.length; i++){
if(i == 0) money[i] = 0;
else if(i == 1) money[i] = nums[0];
else{
money[i] = Math.max(money[i-1], nums[i-1]+money[i-2]);
}
}
return money[nums.length];
}
}
原文:http://www.cnblogs.com/5683yue/p/5117751.html