首页 > 其他分享 >打家劫舍

打家劫舍

时间:2022-10-31 13:12:19浏览次数:66  
标签:偷窃 int 金额 length 房屋 打家劫舍 dp

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

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

示例 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 。

提示:

1 <= nums.length <= 100
0 <= nums[i] <= 400
相关标签

Java

作者:力扣 (LeetCode)
链接:https://leetcode.cn/leetbook/read/top-interview-questions-easy/xnq4km/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

class Solution {
    public int rob(int[] nums) {
        int length = nums.length;
        int dp[][] = new int[length][2];
        //0表示没偷,1表示偷
        dp[0][0] = 0;
        dp[0][1] = nums[0];
        for(int i=1;i<length;i++){
            //这次偷了=上次没偷+这次偷
            dp[i][1] = dp[i-1][0] + nums[i];
            //这次没偷=找到最大值(上次偷了,上次没偷)
            dp[i][0] =  Math.max(dp[i-1][0],dp[i-1][1]);
        }
        //取最大值返回
        return Math.max(dp[length - 1][0], dp[length - 1][1]);
    }
}

标签:偷窃,int,金额,length,房屋,打家劫舍,dp
From: https://www.cnblogs.com/xiaochaofang/p/16843934.html

相关文章

  • 198.house-robber 打家劫舍
    问题描述198.打家劫舍解题思路dp[i]表示考虑前i个房间,能窃取到的最大金额。考虑递推关系:假设第要窃取第i个房间,那么说明第i-1个房间,肯定没有被窃取,dp[i]=dp[i-......
  • 337.house-robber-iii 打家劫舍III
    问题描述337.打家劫舍III解题思路严格来说,这一题和198.打家劫舍,213.打家劫舍II的思路并不一致。首先,这一道题遍历的是树,而不是一个数组。要比较的是选择目前节点和目前......
  • 213.house-robber-ii 打家劫舍II
    问题描述213.打家劫舍II解题思路参照198.打家劫舍,但是这里多了一个首尾不能同时选择的选项,因此可以考虑将数组分成两部分,一个包含[0,n-1),一个包含[1,n),分别对应dp0......
  • #yyds干货盘点# 面试必刷TOP101:打家劫舍(二)
    1.简述:描述你是一个经验丰富的小偷,准备偷沿湖的一排房间,每个房间都存有一定的现金,为了防止被发现,你不能偷相邻的两家,即,如果偷了第一家,就不能再偷第二家,如果偷了第二家,那么就......
  • 打家劫舍系列问题
    打家劫舍系列问题作者:Grey原文地址:博客园:打家劫舍系列问题CSDN:打家劫舍系列问题LeetCode198.打家劫舍主要思路定义和原始数组一样长的dp数组,int[]dp=newin......
  • 打家劫舍
    1打家劫舍题目你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在......
  • 没有小偷比我更专业(打家劫舍)
    一:写在前面 动态规划真的很重要,无论大公司小公司都会涉及到。博主最近在秋招,遇到了两个打家劫舍的笔试题,或者说是变形题。4399的猜密码,给你一串数字,相邻2个数字不能一......
  • leetcode198:打家劫舍
    packagecom.mxnet;publicclassSolution198{publicstaticvoidmain(String[]args){}/***你是一个专业的小偷,计划偷窃沿街的房屋。每间......