/* 算法思想:
* 动态规划
*/
int max(int a, int b){
return a>b ? a:b;
}
int rob(int* nums, int len){
if(!nums || !len) return 0;
if(len == 1) return nums[0];
int arr[len], i;
arr[0] = nums[0];
arr[1] = nums[1];
for(i=2; i<len; i++){
arr[i] = max(arr[i-2]+nums[i], arr[i-1]);
if(i-3>=0)
arr[i] = max(arr[i], arr[i-3]+nums[i]);
}
for(i=0; i<len; i++){
printf("%d,", arr[i]);
}
return arr[len-1] > arr[len-2] ? arr[len-1] : arr[len-2];
}
leetcod-198-打家劫舍-C语言
最新推荐文章于 2021-03-31 11:03:49 发布