代码随想录算法训练营day39|动态规划part7

今天是打家劫舍专题,第一题难度不大,想出状态转移方程dp[i]=max(dp[i-2]+nums[i],dp[i-1])即可求解;第二题相比于第一题,这题的房屋改成了环状结构,表面上看很难,实际上只需分类讨论,分成不包含头节点和不包含末节点两部分分别用第一题的思路求解,然后再取最大值即可。

重点是第三题,第三题是二叉树和dp的结合,难度比较大。这题的状态转移方程和前面的题目的形式都不同,因为这题是在二叉树上进行的操作,又因为操作二叉树需要采用递归,所以这道题实际上是每一层都创建一个dp数组,所以这个dp数组只需记录每一层的状态再向上返回即可。所以dp数组只需含有两个元素,一个记录不偷当前节点的状态,另一个记录偷当前节点的状态,然后逐层向上递归即可。

198.打家劫舍

视频讲解:动态规划,偷不偷这个房间呢?| LeetCode:198.打家劫舍_哔哩哔哩_bilibili

代码随想录

213.打家劫舍II

视频讲解:动态规划,房间连成环了那还偷不偷呢?| LeetCode:213.打家劫舍II_哔哩哔哩_bilibili

代码随想录

337.打家劫舍III

视频讲解:动态规划,房间连成树了,偷不偷呢?| LeetCode:337.打家劫舍3_哔哩哔哩_bilibili

代码随想录

相关推荐
John_Rey7 分钟前
API 设计哲学:构建健壮、易用且符合惯用语的 Rust 库
网络·算法·rust
愿没error的x8 分钟前
动态规划、贪心算法与分治算法:深入解析与比较
算法·贪心算法·动态规划
NONE-C24 分钟前
动手学强化学习 第6章 Dyna-Q 算法
算法
惊讶的猫43 分钟前
面向无监督行人重识别的摄像头偏差消除学习
人工智能·算法·机器学习
深度学习机器1 小时前
RAG Chunking 2.0:提升文档分块效果的一些经验
人工智能·算法·llm
努力学习的小全全1 小时前
【CCF-CSP】05-01数列分段
数据结构·算法·ccf-csp
遗憾是什么.2 小时前
数据结构 -- 栈
数据结构·算法·链表
清风er2 小时前
智能座舱开发
算法·计算机视觉
Learn Beyond Limits2 小时前
Data Mining Tasks|数据挖掘任务
人工智能·python·神经网络·算法·机器学习·ai·数据挖掘
Croa-vo2 小时前
Citadel SDE 面试复盘:直面硬核算法与思维挑战的双重压力
算法·面试·职场和发展