Leetcode198. House Robber

经典dp

class Solution {
    public int rob(int[] nums) {
        if(nums==null||nums.length<1) return 0;
        if(nums.length==1) return nums[0];
        
        int[] dp = new int[nums.length];
        int max = nums[0];
        dp[0]=nums[0];
        dp[1]=nums[1];
        if(dp[1]>max) max=dp[1];
        if(nums.length==2) return Math.max(dp[0],dp[1]);
        dp[2]=dp[0]+nums[2];
        if(dp[2]>max) max=dp[2];
        for(int i=3;i<nums.length;i++){
            dp[i]=Math.max(dp[i-2],dp[i-3])+nums[i];
            if(dp[i]>max) max=dp[i];
        }
        return max;
    }
}
Runtime: 2 ms, faster than 100.00% of Java online submissions for House Robber.
Memory Usage: 36.8 MB, less than 42.45% of Java online submissions for House Robber
posted @ 2019-03-10 22:36  大胖子球花  阅读(128)  评论(0)    收藏  举报