博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
337. House Robber III
阅读量:4467 次
发布时间:2019-06-08

本文共 1490 字,大约阅读时间需要 4 分钟。

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.

 

Credits:

Special thanks to  for adding this problem and creating all test cases.

 

树形dp 

  • rob_root = max(rob_L + rob_R , no_rob_L + no_nob_R + root.val)
  • no_rob_root = rob_L + rob_R
  • /** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */ //tree DPpublic class Solution {    public int rob(TreeNode root) {     return dfs(root)[0];    }    public int[] dfs(TreeNode root){        if(root == null) return new int[2];        int[] left = dfs(root.left);        int[] right = dfs(root.right);        int dp[] = new int[2];        dp[1] = left[0] + right[0];        dp[0] = Math.max(dp[1] , left[1] + right[1] + root.val);        return dp;    }}

     

转载于:https://www.cnblogs.com/joannacode/p/5955215.html

你可能感兴趣的文章
Java虚拟机类加载机制
查看>>
DirectX:函数可以连接任意两个filter 分类: Direct...
查看>>
Android APP开发入门教程-Button 分类: JAVA ...
查看>>
WustOJ 1575 Gingers and Mints(快速幂 + dfs )
查看>>
算法:求从1到n这n个整数的十进制表示中1出现的次数-- python 实现
查看>>
CSU 1160 把十进制整数转换为十六进制,格式为0x开头,10~15由大写字母A~F表示
查看>>
LintCode 58: Compare Strings
查看>>
[Unity插件]Lua行为树(五):装饰节点Repeater
查看>>
顺序表、链表、栈和队列
查看>>
Linux第二天(Linux常用命令2)
查看>>
MySql知识体系
查看>>
JIRA中的标记语言的语法参考
查看>>
hdu 6318 Swaps and Inversions(归并排序)
查看>>
用css在IE7、8上实现圆角
查看>>
三维绿幕标定与跟踪
查看>>
android ProgressBar自定义半圆形进度条
查看>>
hdu.5212.Code(莫比乌斯反演 && 埃氏筛)
查看>>
python学习记录一
查看>>
IP通信基础 4月1日
查看>>
KeyProvider
查看>>