题目描述
思路分析
例如
[1,2,3,1]
代码一:
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];
}
代码二:
public int rob1(int[] nums) {
int pre=0,cur=0,temp;
for(int num:nums)
{
temp=cur;
cur=Math.max(pre+num, cur);
pre=temp;
}
return cur;
}