#include<stdio.h>
#include<malloc.h>
#include<string.h> 
int cmp(const void *a,const void *b)
{
    return *(int *)a-*(int *)b;
}    
/*
    LeetCode第198题 
*/
/*
    dp思想:每次判断是加上这个数更多还是不加更多。 
        max(dp[i-2]+nums[i],dp[i-1])
*/
int rob(int* nums, int numsSize){
    if(numsSize == 1) return nums[0];
    if(numsSize == 2) return nums[0] > nums[1] ? nums[0] : nums[1];
    int i;
    int res1 = nums[0];
    int res2 = nums[0] > nums[1] ? nums[0] : nums[1];
    int res = 0;
    int temp;
    for(i = 2; i < numsSize; i++)
    {
        temp = res1 + nums[i];
        res = temp > res2 ? temp : res2;
        res1 = res2;
        res2 = res;
    }
    return res;  
}