class Solution {
public int rob(int[] nums) {
int len = nums.length;
if(len<=1) return nums[0];
int[] f = new int[len+1];
int[] d = new int[len+1];
f[1]=nums[0];
d[2]=nums[1];
for(int i=2; i<len; i++){
f[i] = Math.max(f[i-1],f[i-2]+nums[i-1]);
}
for(int i=3; i<=len; i++){
d[i] = Math.max(d[i-1],d[i-2]+nums[i-1]);
}
return Math.max(d[len],f[len-1]);
}
}