首页 > Java > java教程 > 正文

LeetCode Day动态编程

王林
发布: 2024-07-19 17:41:52
原创
710 人浏览过

LeetCode DayDynamic Programming

198.入室盗窃

你是一名职业强盗,计划抢劫街道上的房屋。每栋房子都藏有一定数量的钱,唯一阻止你抢劫的限制是相邻的房子都有安全系统连接,如果相邻的两栋房子在同一天晚上被闯入,它会自动联系警方。

给定一个代表每栋房子的金额的整数数组 nums,返回今晚你可以在不报警的情况下抢劫的最大金额。

示例1:

输入:nums = [1,2,3,1]
输出:4
说明:抢夺 1 号房屋(金钱 = 1),然后抢夺 3 号房屋(金钱 = 3)。
您可以抢劫的总金额 = 1 + 3 = 4。
示例2:

输入:nums = [2,7,9,3,1]
输出:12
说明:抢劫房屋 1(金钱 = 2)、抢劫房屋 3(金钱 = 9)和抢劫房屋 5(金钱 = 1)。
您可以抢劫的总金额 = 2 + 9 + 1 = 12。

限制:

1 0 原始页面

    public int rob(int[] nums) {
        int[] dp = new int[nums.length+1];
        dp[1] = nums[0];

        for(int i=2; i<dp.length; i++){
            dp[i] = Math.max(dp[i-2]+nums[i-1], dp[i-1]);
        }
        // System.out.println(Arrays.toString(dp));
        return dp[dp.length-1];

    }
登录后复制

以上是LeetCode Day动态编程的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板