java刷题--213打家劫舍II

Posted Anrys

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java刷题--213打家劫舍II相关的知识,希望对你有一定的参考价值。

java刷题--213打家劫舍II

题目

在这里插入图片描述

代码

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

结果

在这里插入图片描述

以上是关于java刷题--213打家劫舍II的主要内容,如果未能解决你的问题,请参考以下文章

刷题记录|Day48 ● 198.打家劫舍 ● 213.打家劫舍II ● 337.打家劫舍III

LeetCode刷题笔记-动态规划-day3

LeetCode刷题笔记-动态规划-day3

LeetCode刷题笔记-动态规划-day3

LeetCode每日一题刷题总结

js 前端动态规划刷题第三天打卡 打家劫舍(I 与 II),一个函数解决两个问题