public static int rob(int[] nums) {
if (nums == null) {
return 0;
}
int n = nums.length;
if (n == 0) {
return nums[0];
}
int[] C = new int[n];
for (int i = 0; i < n; i++) {
if (i == 0) {
C[i] = nums[i];
}
if (i == 1) {
C[i] = Math.max(nums[0], nums[1]);
}
if (i >= 2) {
C[i] = Math.max(C[i - 1], nums[i] + C[i - 2]);
}
}
return C[C.length - 1];
}