Memorization
337. House Robber III
private Map<TreeNode, Integer> map = null;
public int rob(TreeNode root) {
map = new HashMap<>();
return helper(root);
}
private int helper(TreeNode node){
if(node == null) return 0;
if(map.containsKey(node)) return map.get(node);
int val = node.val;
if(node.left != null) val+=(helper(node.left.left)+helper(node.left.right));
if(node.right != null) val+=(helper(node.right.left)+helper(node.right.right));
int ans = Math.max(val, helper(node.left)+helper(node.right));
map.put(node, ans);
return ans;
}Longest Continuous Increasing Subsequence 2D
Last updated