打家劫舍(二)
public int rob (int[] nums) {
// write code here
int n=nums.length;
int[] dp=new int[n+1];
dp[1]=nums[0];
for (int i=2;i<nums.length;i++){
dp[i]=Math.max(dp[i-1],dp[i-2]+nums[i-1]);
}
int res=dp[n-1];
Arrays.fill(dp,0);
for (int i=2;i<= nums.length;i++){
dp[i]=Math.max(dp[i-1],nums[i-1]+dp[i-2]);
}
return Math.max(res,dp[n]);
}