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

代码随想录

相关推荐
wuqingshun31415919 分钟前
蓝桥杯 11. 打印大X
数据结构·算法·职场和发展·蓝桥杯·深度优先
Blossom.1181 小时前
量子网络:构建未来通信的超高速“高速公路”
网络·opencv·算法·安全·机器学习·密码学·量子计算
A林玖1 小时前
【机器学习】朴素贝叶斯
人工智能·算法·机器学习
六边形战士DONK1 小时前
神经网络基础[损失函数,bp算法,梯度下降算法 ]
人工智能·神经网络·算法
wuqingshun3141592 小时前
蓝桥杯 2. 确定字符串是否是另一个的排列
数据结构·c++·算法·职场和发展·蓝桥杯
小刘|2 小时前
JVM 自动内存管理
java·jvm·算法
小羊不会c++吗(黑客小羊)2 小时前
c++头文件知识
算法
拓端研究室TRL2 小时前
PyMC+AI提示词贝叶斯项目反应IRT理论Rasch分析篮球比赛官方数据:球员能力与位置层级结构研究
大数据·人工智能·python·算法·机器学习
CoovallyAIHub3 小时前
Vision Transformers与卷积神经网络详细训练对比(附代码)
深度学习·算法·计算机视觉
地平线开发者3 小时前
征程 6 逆向自证hbm与bc一致性
算法·自动驾驶