# Middle-题目129：337. House Robber III（增补1）

The thief has found himself a new place for his thievery again. There is only one entrance to this area, called the “root.” Besides the root, each house has one and only one parent house. After a tour, the smart thief realized that “all houses in this place forms a binary tree”. It will automatically contact the police if two directly-linked houses were broken into on the same night.

Determine the maximum amount of money the thief can rob tonight without alerting the police.

Example 1:
3
/ \
2   3
\   \
3   1

Maximum amount of money the thief can rob = 3 + 3 + 1 = 7.

Example 2:
3
/ \
4   5
/ \   \
1   3   1

Maximum amount of money the thief can rob = 4 + 5 = 9.

profit[0]=leftProfit[1]+rightProfit[1]+root.val;$profit[0] = leftProfit[1] + rightProfit[1] + root.val;$
profit[1]=Math.max(leftProfit[0],leftProfit[1])+Math.max(rightProfit[0],rightProfit[1]);$profit[1] = Math.max(leftProfit[0],leftProfit[1]) + Math.max(rightProfit[0], rightProfit[1]);$

public class Solution {
public int rob(TreeNode root) {
int[] profit = dfs(root);
return Math.max(profit[0], profit[1]);
}
private int[] dfs(TreeNode root) {
int[] profit = new int[2];
// profit[0] stands for the maximum profit with robbing root, while profit[1] stands for the maximum profit without robbing root.
if(root!=null) {
int[] leftProfit = dfs(root.left);
int[] rightProfit = dfs(root.right);
profit[0] = leftProfit[1] + rightProfit[1] + root.val;
profit[1] = Math.max(leftProfit[0],leftProfit[1]) + Math.max(rightProfit[0], rightProfit[1]);
return profit;
}
return new int[2];
}
}

1ms（统计信息还未显示）
Cmershen的碎碎念：

• 本文已收录于以下专栏：

## [leetcode-337]House Robber III(java)

• zdavb
• 2016年03月27日 22:19
• 832

## leetcode 337. House Robber III-动态规划|Java|Python简洁高效

• happyaaaaaaaaaaa
• 2016年03月13日 21:06
• 4656

## [leetcode] 337. House Robber III

The thief has found himself a new place for his thievery again. There is only one entrance to this a...
• TstsUgeg
• 2016年03月12日 20:20
• 2337

## LeetCode337. House Robber III

• codeTZ
• 2016年03月23日 20:34
• 1103

## 337. House Robber III （C++实现）

• jingmiaa
• 2016年05月09日 18:41
• 432

## LeetCode213——House Robber II

Note: This is an extension of House Robber. After robbing those houses on that street, the thief ...
• booirror
• 2015年08月03日 11:28
• 1025

## LeetCode 337. House Robber III(java)

The thief has found himself a new place for his thievery again. There is only one entrance to this a...
• katrina95
• 2018年01月21日 05:21
• 16

## 337. House Robber III**

The thief has found himself a new place for his thievery again. There is only one entrance to this a...
• alwaystry
• 2016年12月24日 15:40
• 146

## 337. House Robber III

The thief has found himself a new place for his thievery again. There is only one entrance to this a...
• mawu_1014
• 2016年03月27日 21:35
• 143

## LeetCode_198. House Robber_动态规划

198. House Robber You are a professional robber planning to rob houses along a street. Each house ...
• Binbin_Sun
• 2016年01月21日 12:45
• 444

举报原因： 您举报文章：Middle-题目129：337. House Robber III（增补1） 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)