Leetcode 198 robberies JAVA

The subject classified as simple dp.

when n = 1, dp [1] = 1.

when n = 2, dp [2] = max (dp [1], nums [2])

when n = 3, dp [3] = max (dp [2], nums [3] + dp [1])

It can be launched state transition equation

 

dp [i] = max ( dp[i-1], dp[i-2] + nums[i])

 

Code

class Solution {
    public int rob(int[] nums) {
        int len = nums.length;
        if(len == 0) return 0;
        int []dp = new int[len + 1];
        dp[0] = 0;
        dp[1] = nums[0];
        for(int i = 2; i < len + 1; i++){
            dp[i] = Math.max(dp[i-1],dp[i-2]+nums[i-1]);
        }
        return dp[nums.length];
    }
}

 

Guess you like

Origin www.cnblogs.com/stul/p/11540740.html