【每日一练】你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。
发布日期:2021-10-06 02:38:36 浏览次数:7 分类:技术文章

本文共 695 字,大约阅读时间需要 2 分钟。

你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。

给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。

示例 1:

输入: [1,2,3,1]

输出: 4
解释: 偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。
     偷窃到的最高金额 = 1 + 3 = 4 。
示例 2:

输入: [2,7,9,3,1]

输出: 12
解释: 偷窃 1 号房屋 (金额 = 2), 偷窃 3 号房屋 (金额 = 9),接着偷窃 5 号房屋 (金额 = 1)。
     偷窃到的最高金额 = 2 + 9 + 1 = 12 。

class Solution {

    public int rob(int[] nums) {

        if(nums == null || nums.length == 0) return 0;

 

        int len = nums.length;

 

        if(nums.length == 1) return nums[0];

 

        int[] res = new int[len];

        res[0] = nums[0];

        res[1] = Math.max(nums[0], nums[1]);

        for(int i= 2; i< len; i++){

            res[i] = Math.max(res[i-1], nums[i] + res[i-2]);

        }

        return res[len-1];

    }

}

 

 

转载地址:https://blog.csdn.net/luxuiary/article/details/106418551 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【每日一练】给你一个数组 candies 和一个整数 extraCandies ,其中 candies[i] 代表第 i 个孩子拥有的糖果数目。
下一篇:给定两个列表 Aand B,并且 B 是 A 的变位(即 B 是由 A 中的元素随机排列后组成的新列表)。

发表评论

最新留言

很好
[***.229.124.182]2024年04月08日 07时14分58秒