在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为“根”。 除了“根”之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房屋将自动报警。

计算在不触动警报的情况下,小偷一晚能够盗取的最高金额。

示例 1:

输入: [3,2,3,null,3,null,1]3/ \2   3\   \ 3   1
输出: 7
解释: 小偷一晚能够盗取的最高金额 = 3 + 3 + 1 = 7.

示例 2:

输入: [3,4,5,1,3,null,1]

3
    / \
   4   5
  / \   \ 
 1   3   1

输出: 9
解释: 小偷一晚能够盗取的最高金额 = 4 + 5 = 9.

class Solution:def rob(self,root:TreeNode)->int:def dfs(node):if not node:return [0, 0]left = dfs(node.left)right = dfs(node.right)dp = [0,0]dp[0] = max(left)+max(right)dp[1] = left[0]+right[0]+node.valreturn dpreturn max(dfs(root))

[leetcode] 337.打家劫舍3相关推荐

  1. LeetCode 337. 打家劫舍 III(记忆化+递归)

    文章目录 1. 题目 1.1 相关题目: 2. 解题 2.1 递归 2.2 记忆化递归 1. 题目 在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区.这个地区只有一个入口,我们称 ...

  2. leetcode —— 337. 打家劫舍 III

    在上次打劫完一条街道之后和一圈房屋后,小偷又发现了一个新的可行窃的地区.这个地区只有一个入口,我们称之为"根". 除了"根"之外,每栋房子有且只有一个" ...

  3. 104. Leetcode 337. 打家劫舍 III (动态规划-打家劫舍)

    步骤一.确定递归函数的参数和返回值: dp数组及下标的含义 dp数组的长度为2, 下标为0记录不偷该节点所得到的的最大金钱,下标为1记 录偷该节点所得到的的最大金钱. 步骤二.确定终止条件: 在遍历的 ...

  4. LeetCode 198. 打家劫舍(DP)

    1. 题目 你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警. 给 ...

  5. leetcode 337. House Robber III | 337. 打家劫舍 III(树形dp;什么情况下dp需要强制包含当前元素?)

    题目 https://leetcode.com/problems/house-robber-iii/ 思考:什么情况下 dp 需要强制包含当前元素? dp 过程中,需要包含当前元素 的例子: leet ...

  6. 代码随想录Day48|198.打家劫舍、213.打家劫舍II、337.打家劫舍III

    文章目录 198.打0家劫舍 213.打家劫舍II 337.打家劫舍III 198.打0家劫舍 文章讲解:代码随想录 (programmercarl.com) 题目链接:198. 打家劫舍 - 力扣( ...

  7. leetcode 198打家劫舍

    leetcode 198打家劫舍 题目链接:打家劫舍 题目描述:你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间 ...

  8. day40|198.打家劫舍、213.打家劫舍II、337.打家劫舍III

    198.打家劫舍 你是一个专业的小偷,计划偷窃沿街的房屋.每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警 ...

  9. Day48 | 198. 打家劫舍 | 213.打家劫舍Il |337. 打家劫舍 III

    198. 打家劫舍 注意点: 1. 递推公式,dp[j-2]+nums[j]表示的是加上nums[j]后dp[j]的值, dp[j-1]表示的是不加nums[j]后dp[j-1]的最大值 class ...

最新文章

  1. 数据绑定(Binding)
  2. 自制Flash FLV视频播放器
  3. 老男孩 - python基础day1
  4. Angular2入门教程-1
  5. C++ 方块游戏小更新
  6. Oracle学习笔记:a inner join b与from a,b where a.x=b.x的差异
  7. (MariaDB/MySQL)之DML(2):数据更新、删除
  8. 一次看过瘾的可视化大屏,网友直呼:真酷炫!比Excel强
  9. 斯坦福大学成立以人为本AI研究院 计算机科学教授李飞飞任院长
  10. 南华桌面计算机,南华大学计算机应用基础试题题.doc
  11. 学习dajango+sqlite3入门学习
  12. 手机升降式摄像头有什么优缺点?
  13. android ListView 九大重要属性详细分析
  14. VMware 虚拟机桥接网络设置
  15. 居家隔离的第5天,我们整了个六边形战士
  16. ft232r usb uart驱动_构建基于USB的高精度温度传感器电路
  17. 启动系统提示“NTLDR is missing”的解决办法
  18. C语言BT软件项目总结
  19. win7 凭据管理无法保存
  20. Udp数据接收和发送代码

热门文章

  1. 深入理解CPU的调度原理
  2. 一次看完28个关于ES的性能调优技巧
  3. 设计模式:享元模式(Flyweight)
  4. Python中菱形继承的MRO顺序及property属性
  5. 音视频技术开发周刊 | 159
  6. 巨头入局,华为云将给音视频行业带来什么?
  7. 研效优化实践:Python单测——从入门到起飞
  8. 【Go API 开发实战 2】RESTful API 介绍
  9. Redis的 key 和 value大小限制
  10. Gitlab 10.1.4 (汉化版) for CentOS 7.4安装