用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];

}
}

posted on 2016-01-10 07:20  爱推理的骑士  阅读(100)  评论(0编辑  收藏  举报