如何解决leetcode中打家劫舍的问题
发表于:2024-12-12 作者:千家信息网编辑
千家信息网最后更新 2024年12月12日,小编给大家分享一下如何解决leetcode中打家劫舍的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!题目链接https
千家信息网最后更新 2024年12月12日如何解决leetcode中打家劫舍的问题
小编给大家分享一下如何解决leetcode中打家劫舍的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
题目链接
https://leetcode-cn.com/problems/house-robber/
题目描述
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。
给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。
示例 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 。
解题方案
思路
标签:动态规划
动态规划方程:
dp[n] = MAX( dp[n-1], dp[n-2] + num )
由于不可以在相邻的房屋闯入,所以在当前位置
n
房屋可盗窃的最大值,要么就是n-1
房屋可盗窃的最大值,要么就是n-2
房屋可盗窃的最大值加上当前房屋的值,二者之间取最大值举例来说:1号房间可盗窃最大值为3即为
dp[1]=3
,2号房间可盗窃最大值为4即为dp[2]=4
,3号房间自身的值为2即为num=2
,那么dp[3] = MAX( dp[2], dp[1] + num ) = MAX(4, 3+2) = 5
,3号房间可盗窃最大值为5时间复杂度:O(n),n为数组长度
代码
Java版本
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; i++) {
dp[i] = Math.max(dp[i-1], dp[i-2] + nums[i-1]);
}
return dp[len];
}
}
JavaScript版本
/**
* @param {number[]} nums
* @return {number}
*/
var rob = function(nums) {
const len = nums.length;
if(len == 0)
return 0;
const dp = new Array(len + 1);
dp[0] = 0;
dp[1] = nums[0];
for(let i = 2; i <= len; i++) {
dp[i] = Math.max(dp[i-1], dp[i-2] + nums[i-1]);
}
return dp[len];
};
画解
以上是"如何解决leetcode中打家劫舍的问题"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
房屋
金额
最大
最大值
号房
最高
就是
篇文章
打家劫舍
问题
内容
动态
小偷
数组
版本
示例
系统
要么
题目
规划
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
厦门建研集团 软件开发
台湾人名数据库
关于农村学生网络安全
stata怎么use数据库
青县县委网络安全和信息化
网络安全详细事例
数据库无法上传
服务器mac地址过滤
巴克利视频软件开发
mongodb数据库修改
计算机网络技术基础华科
安全风险和事故隐患数据库
网络安全传统防御技术
扬州专业服务器安装
埃德万测试 软件开发
外交部自身网络安全吗
杭州云染网络技术有限责任公司
tim网络技术
保密网络技术人才
服务器如何设定阈值
智加郑州工业互联网科技有限公司
shell数据库传参
ubuntu服务器部署
数字时代网络安全视频
北京服务器电源批发商
计算机网络安全技术摘要
山东质量软件开发有限公司
数据库retries
中学网络安全知识资料
layui js 绑定数据库