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

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

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

198.打家劫舍

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

代码随想录

213.打家劫舍II

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

代码随想录

337.打家劫舍III

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

代码随想录

相关推荐
zyl76510 小时前
FlashAttention 详解:从 GPU 硬件、普通 Attention 到分块计算与 Online Softmax
算法
爱读书的小胖14 小时前
LeetCode 122:买卖股票的最佳时机 II(C)解题分析
算法
结局无敌14 小时前
React Native for OpenHarmony 实战:三方库 react-native-modal-dialog 的鸿蒙化适配指南
深度学习·算法·react native·react.js·harmonyos
OPEN-F14 小时前
ROS2系列教程:上位机建图与导航(原理综合)
算法·机器人
weixin_3077791314 小时前
C++代码实现MATLAB中的fitrtree函数功能
开发语言·c++·算法·matlab
tomwang032215 小时前
路径优化建模、优化算法分类及工程化小结
算法·数学建模·分类
小羊没烦恼!15 小时前
Ajax与JSON的一些总结
android·java·前端·数据库·mysql·算法·okhttp
2501_9269783315 小时前
人机通信协议--人和机器之间的交互想象
人工智能·经验分享·算法·ai写作
行者全栈架构师15 小时前
【鸿蒙心迹】互动卡片全链路——把核心功能放到桌面(FormKit 实战)(HarmonyOS 7.x)
前端·算法·架构
无定义_15 小时前
10.11日常训练
算法