代码随想录算法训练营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

代码随想录

相关推荐
小五Z30 分钟前
高阶数据结构--B树&&B+树实现原理&&B树模拟实现--Java
java·数据结构·b树·算法
toto41233 分钟前
红黑树和B+树
数据结构·b树·算法
chenziang139 分钟前
leetcode 100 热题 三数字之和
算法·leetcode·职场和发展
HUT_Tyne2651 小时前
力扣--LCR 131. 砍竹子1
java·算法·leetcode
Star Patrick1 小时前
算法训练(leetcode)二刷第三十五天 | *121. 买卖股票的最佳时机、*122. 买卖股票的最佳时机 II、*123. 买卖股票的最佳时机 III
算法·leetcode·职场和发展
xuchaoxin13751 小时前
二叉树@基本概念和性质@存储结构
数据结构·算法
M-x_y2 小时前
排序算法--C语言
c语言·算法·排序算法·设计语言
阿里技术2 小时前
HNSW 分布式构建实践
分布式·算法·方案·hnsw·向量检索
南宫生2 小时前
力扣-图论-9【算法学习day.59】
java·学习·算法·leetcode·图论
CopyProfessor2 小时前
Java版-图论-最短路-Floyd算法
java·算法·图论