题目大意
https://leetcode.com/problems/house-robber-iii/
一个强盗可以对一棵树上从根节点至下对每个节点进行rob,要求相邻两个节点不能rob。
题目分析
这个题接续house robber i和house robber ii。但更为复杂的是,这次是一棵树,实质上还是进行先搜索,再进行记忆化,搜索就是基于穷举法,每次遇到一个节点,选择是留还是弃。留的话,那么下次的搜索只能从当前结点的儿子节点的儿子节点开始搜索。弃的话,下次搜索的起点是儿子节点。在此基础上,加上记录,但这次记录的不是数字了,而是TreeNode节点,可以利用Map<TreeNode, Integer>
存储。
代码
|
|
时间复杂度就是树的节点数。