leetcode 198. House Robber

Posted ctqchina

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode 198. House Robber相关的知识,希望对你有一定的参考价值。

考虑数组为3的情况:答案为max(data[0]+data[2], data[1])。则依据这一结果来更新数组。即将数组中第三位开始依照这一结果来修改此处的值,最后更新至data[len-1]。即答案为data[len-1]。类似数塔问题。

class Solution {
    public int rob(int[] nums) {
        
        if(nums == null) return 0;
        int len = nums.length;
        if(len == 0) return 0;
        else if(len == 1) return nums[0];
        
        nums[1] = Math.max(nums[0], nums[1]);
        for(int i=2;i<len;i++)
            nums[i] = Math.max(nums[i-1], nums[i]+nums[i-2]);
        
        return nums[len-1];
        //[4,1,2,7,5,3,1]
    }
}

  

以上是关于leetcode 198. House Robber的主要内容,如果未能解决你的问题,请参考以下文章

leetCode 198. House Robber | 动态规划

LeetCode 198. House Robber

Leetcode 198 House Robber

[leetcode-198-House Robber]

leetcode 198. House Robber

[LeetCode] 198. House Robber