198.打家劫舍
思路:偷或者不偷,普通的动态规划问题,但要注意特殊值,因为要初始化两个值,但是输入可能只有一个。
213.打家劫舍II
思路:环形问题要试着将其展开为多个线性问题,例如本题可以分为三种情况。
其中,情况2或者情况3已经包含了情况1。
拆分的时候用到了上一题,但是要搞定数组相对位置。
337.打家劫舍III
思路:这是一道树形dp,但是并不是很困难,本质是遍历树然后存储子树结果,之后再返回上一层,是后序遍历。
每个节点都会有选择和不选择两种情况,所以递归函数返回值是一个有两个值的一维数组。