【leetcode】213. 打家劫舍 II

 

#define max(a,b) ((a)>(b))?(a):(b);
int rob(int* nums, int numsSize){
    if(numsSize==1)
        return *nums;
    int dp[2][101]={0};
    dp[0][0]=nums[0];
    dp[0][1]=nums[0];
    dp[1][1]=nums[1];
    for (int i=2; i<numsSize; i++){
        dp[0][i]=max(nums[i]+dp[0][i-2], dp[0][i-1]);
        dp[1][i]=max(nums[i]+dp[1][i-2], dp[1][i-1]);
    }
    return max(dp[0][numsSize-2], dp[1][numsSize-1]);
}

 

上一篇:随笔3


下一篇:乘法游戏