LeetCode 198 打家劫舍
fun(n) = max(arr[n] + fun(n - 2), fun(n - 1))
int max(int a, int b) {
if (a > b) b = a;
return b;
}
int rob(int* nums, int numsSize){
if (numsSize <= 0) return 0;
if (numsSize == 1) return nums[numsSize - 1];
if (numsSize == 2) return max(nums[0], nums[1]);
int fun2 = nums[0];
int fun1 = max(nums[0], nums[1]);
int fun = 0;
for (int i = 3; i <= numsSize;i++) {
fun = max(nums[i - 1] + fun2, fun1);
fun2 = fun1;
fun1 = fun;
}
return fun;
}