代码随想录 day40 打家劫舍 及其变体

打家劫舍

打家劫舍

解题思路

动态规划解决问题,通过前两个值决定第三个值,需要注意的是初始值的选择,第二个的值是取前两个数中较大的,这样是为了保证跳过不需要取的值

知识点

动态规划

心得

初始值的选择没有考虑到,其余的都写出来了

打家劫舍 二

打家劫舍二

解题思路

前一题的改进,只需要分别对没有头元素和没有末尾元素的两个数组进行同样的动态规划处理,之后比较谁的结果打即可,这样就避免了选取首位相邻的情况。

知识点

动态规划

心得

简单

打家劫舍 三

打家劫舍 三

解题思路

将动态规划和二叉树进行的结合,难点在于确定dp数组的大小,在本题中,该数组的大小为2,因为只存在对于该节点偷与不偷的情况,随后边进行后序遍历(左右中,因为中间的值是需要左右的值来决定的。最后通过比较偷与不偷该节点的大小来进行后续的抉择

知识点

动态规划,二叉树的后序遍历

心得

挺难的一道题。一开始做的时候想到了使用后序遍历,但是dp数组完全不知道该怎么去确定,现在又学习了一道新的思路解法

posted @ 2024-07-30 23:21  不进育碧不改名  阅读(83)  评论(0编辑  收藏  举报