动态规划34(Leetcode337打家劫舍3)

1111-1

代码:

好难好困 梦回图论qaq

class Solution {
    Map f = new HashMap();
    Map g = new HashMap();
    public int rob(TreeNode root) {
        dfs(root);
        return Math.max(f.getOrDefault(root,0),g.getOrDefault(root,0));
    }
    public void dfs(TreeNode node){
        if(node==null){
            return;
        }
        dfs(node.left);
        dfs(node.right);
        f.put(node,node.val+g.getOrDefault(node.left,0)+g.getOrDefault(node.right,0));
        g.put(node,Math.max(f.getOrDefault(node.left,0),g.getOrDefault(node.left,0))+Math.max(f.getOrDefault(node.right, 0), g.getOrDefault(node.right, 0)));
    }
}

你可能感兴趣的:(动态规划,深度优先,算法)