代码随想录算法训练营第47天|● 198.打家劫舍 ● 213.打家劫舍II ● 337.打家劫舍III

198. 打家劫舍

已解答
中等
相关标签
相关企业
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。
给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。

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

代码

package __DPfunc rob(nums []int) int {n := len(nums)// 到达i,盗窃最高金额dp[i]dp := make([]int, n)dp[0] = nums[0]dp[1] = rob_max(nums[0],nums[1])for i := 2; i < n; i++ {dp[i] = rob_max(dp[i-1], dp[i-2]+nums[i])}return dp[n-1]
}func rob_max(i int, i2 int) int {if i > i2 {return i}return i2
}

213. 打家劫舍 II

已解答
中等
相关标签
相关企业
提示
你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警 。
给定一个代表每个房屋存放金额的非负整数数组,计算你 在不触动警报装置的情况下 ,今晚能够偷窃到的最高金额。

示例 1:
输入:nums = [2,3,2]
输出:3
解释:你不能先偷窃 1 号房屋(金额 = 2),然后偷窃 3 号房屋(金额 = 2), 因为他们是相邻的。
示例 2:
输入:nums = [1,2,3,1]
输出:4
解释:你可以先偷窃 1 号房屋(金额 = 1),然后偷窃 3 号房屋(金额 = 3)。
偷窃到的最高金额 = 1 + 3 = 4 。
示例 3:
输入:nums = [1,2,3]
输出:3

提示:

  • 1 <= nums.length <= 100
  • 0 <= nums[i] <= 1000

代码

package __dpfunc rob_ii(nums []int) int {/*两次,[0,n-1],[1,n]*/n := len(nums)if n == 1 {return nums[0]} else if n == 2 {return max(nums[0], nums[1])}dp, dp1 := make([]int, n-1), make([]int, n)dp[0] = nums[0]dp[1] = max(nums[0], nums[1])for i := 2; i < n-1; i++ {dp[i] = max(dp[i-2]+nums[i], dp[i-1])}dp1[0] = nums[1] // 修改此行dp1[1] = max(nums[1], nums[2])for i := 2; i < n-1; i++ {dp1[i] = max(dp1[i-2]+nums[i+1], dp1[i-1]) // 修改此行}return max(dp[n-2], dp1[n-2]) // 修改此行
}

337. 打家劫舍 III

已解答
中等
相关标签
相关企业
小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为 root 。
除了 root 之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果 两个直接相连的房子在同一天晚上被打劫 ,房屋将自动报警。
给定二叉树的 root 。返回 在不触动警报的情况下 ,小偷能够盗取的最高金额 。

示例 1:
[图片]
输入: root = [3,2,3,null,3,null,1]
输出: 7
解释: 小偷一晚能够盗取的最高金额 3 + 3 + 1 = 7
示例 2:
[图片]
输入: root = [3,4,5,1,3,null,1]
输出: 9
解释: 小偷一晚能够盗取的最高金额 4 + 5 = 9

提示:

  • 树的节点数在 [1, 10(4)] 范围内
  • 0 <= Node.val <= 10(4)

思路

  • 与198.打家劫舍,213.打家劫舍II一样,关键是要讨论当前节点抢还是不抢。
  • 如果抢了当前节点,两个孩子就不能动,如果没抢当前节点,就可以考虑抢左右孩子(注意这里说的是“考虑”)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/553378.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js 判断日期大小

//获取当前时间&#xff0c;格式YYYY-MM-DD function getNowFormatDate() { var date new Date(); var seperator1 "-"; var year date.getFullYear(); var month date.getMonth() 1; var strDate date.getDate(); if (month > 1 &…

风林火山win11 64位官方版iso镜像v2021.07

风林火山win11 64位官方版iso镜像v2021.07是一款精心设计过的优秀装机系统&#xff0c;支持多种安装方式&#xff0c;系统中的服务项、注册表等&#xff0c;都是经过全面优化&#xff0c;能够很好的兼容各种功能&#xff0c;系统能够专业化的匹配专业的驱动&#xff0c;保证用户…

js右键

window.onload function(){ //去掉默认的contextmenu事件 document.oncontextmenu function(e){ e.preventDefault(); }; document.getElementById("mousedown").onmousedown function(e){ …

微软发布全新3D Emoji表情系统:与Win11的UI风格一致

微软在7月15日发布了全新的3Demoji表情符号系统&#xff0c;这与Win11的UI风格一致&#xff0c;其中包括基于Fluent流畅设计重新设计的1800多个表情符号。下面一起来看看详细的内容吧! 微软发布全新3D Emoji表情系统&#xff1a;与Win11的UI风格一致 从图片可以看出&#xff…

jeecg自定义datagrid封装列表分页数据显示自定义字段

/*** easyui AJAX请求数据* param clockin* param request* param response* param dataGrid*/RequestMapping(params "datagrid")public void datagrid(HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {TSUser user ResourceUtil…

大地win11 64位官方版镜像v2021.07

大地win11 64位官方版镜像v2021.07是一款精心设计过的优秀装机系统&#xff0c;支持多种安装方式&#xff0c;系统中的服务项、注册表等&#xff0c;都是经过全面优化&#xff0c;能够很好的兼容各种功能&#xff0c;系统能够专业化的匹配专业的驱动&#xff0c;保证用户们的使…

js 字符串截取 获取固定标识字段

/**cha 检索的字符str字符num 索引*/function find(str,cha,num){var xstr.indexOf(cha);for(var i0;i<num;i){xstr.indexOf(cha,x1);}return x;}//字符串:name钢架&num222&remarks备注撒旦法师打发function gettext(){var info result.text;//获取字符串var name …

Win11商店无法加载页面怎么办 Win11应用商店打不开怎么办

很多用户都升级了Win11系统&#xff0c;升级了系统就想要下载一些新的软件来丰富自己的系统。但是升级了Win11系统之后就无法加载应用商店的界面了&#xff0c;打不开微软的应用商店该怎么办呢?小编给大家带来了一个解决办法&#xff0c;希望对大家有帮助。 具体步骤&#xf…

wex5部署教程到数据库

第一步. 打包app 模式3 选择插件勾选, 绑定data c 组件 input 输入框不可编辑, js 赋值后 可以编辑, 第二步. 第三步 4 5 6 7 8 9 10 11 12 启动tomcat 运行app OK

Win7文件夹属性没有位置选项怎么解决

我们在使用电脑的时候&#xff0c;经常会对文件夹的属性进行设置&#xff0c;但是最近不少用户在使用电脑查看的win7系统文件夹属性的时候&#xff0c;发现位置属性不见了&#xff0c;那么Win7文件夹属性没有位置选项怎么办呢?下面小编就为大家讲解一下Win7文件夹属性没有位置…

jeecg框架alert消息样式

在禁用工具时使用可以看到效果 <%-- <t:base type"jquery,easyui,tools,DatePicker"></t:base>--%> //alert("还没有晋升权限,请知悉 !"); //$.messager.alert(提示,还差sys_exalt_day天可申请晋升,请知悉!, error); …

ie浏览器速度提升设置 关闭网页多媒体方法

1.在IE浏览器上找到工具栏&#xff0c;在工具栏中点击打开“Internet选项”。 ie浏览器速度提升设置 关闭网页多媒体方法[多图] 2.切换到“高级”选项卡。 ie浏览器速度提升设置 关闭网页多媒体方法[多图] 3.然后在设置中找到“多媒体”一类&#xff0c;然后根据自己的需求…

Win11怎么设置提高电脑游戏性能

1、点击桌面的开始菜单&#xff0c;选择右上角的设置按钮。 Win11怎么设置提高电脑游戏性能&#xff1f; 2、在左侧找到游戏并打开游戏模式界面。 Win11怎么设置提高电脑游戏性能&#xff1f; 3、在打开的游戏模式中点击图形按钮。 Win11怎么设置提高电脑游戏性能&#xf…

码云提交时报错git 报错 fatal: unable to auto-detect email address (got 'Administrator@PC-20180504MMDH.(none)'

.git 文件夹下 config文件修改 后重新提交 [core] repositoryformatversion 0 filemode false bare false logallrefupdates true symlinks false ignorecase true [remote "origin"] url fetch refs/heads/*:refs/remotes…

傲游浏览器如何关闭智能填表 智能填表功能关闭方法

打开傲游浏览器&#xff0c;点击右上角的“三”字型图标&#xff0c;并在出现弹窗后选取【设置】; 傲游浏览器如何关闭智能填表&#xff1f;智能填表功能关闭方法 进入傲游设置页面后&#xff0c;在左侧的栏目项中点击“基本设置”&#xff0c;这时可以看到智能填表设置默认为…

tomcat 配置https安全认证协议报错解决方案

错误: 严重: Failed to initialize end point associated with ProtocolHandler ["http-bio-8080"] 或者 [http-apr-8080"] tomcat下 conf/server.xml 注意位置1 <Server port"8075" shutdown"SHUTDOWN"> <!-- Secu…

Win11触控板如何关闭 Win11关闭触控板的方法

触控板是每一台笔记本电脑都自带的设备&#xff0c;它能在我们没有鼠标时代替鼠标使用&#xff0c;但如果接上了鼠标触控板就会影响我们的正常使用&#xff0c;那么Win11的触控板应该怎么关闭呢?下面就和小编一起来看看怎么操作吧。 Win11关闭触控板的方法 1、首先我们点击任…

查看表字段信息 sql,mysql,oracle

-- mysqldesc tablename--oracle table_name 的值必须是大写select COLUMN_NAME,DATA_TYPE,DATA_LENGTH ,t.* from user_tab_columns t where table_nameDB_GOODS_CODE;

Win7系统提示NVIDIA显示设置不可用怎么办

Win7系统是最常用的电脑系统之一&#xff0c;有一些小伙伴在打开NVIDIA控制面板点的时候会提示“NVIDIA显示设置不可用&#xff0c;那么碰到这个问题应该怎么办呢?下面就和小编一起来看看Win7系统提示NVIDIA显示设置不可用的解决方法吧。 Win7系统提示NVIDIA显示设置不可用怎…

jeecg 输入框属性 自定义ajax 验证字段值是否存在

jsp <div class"form"><label class"Validform_label">选项编号: </label><input name"typecode" class"inputxt" value"${type.typecode }" datatype"/^[A-Za-z0-9\u4E00-\u9FA5\uf900-\ufa2d…