千家信息网

如何用打家劫舍的思维分析python二叉树

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,如何用打家劫舍的思维分析python二叉树,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。在上次打劫完一条街道之后和一圈房屋后,小偷又发现
千家信息网最后更新 2026年10月31日如何用打家劫舍的思维分析python二叉树

如何用打家劫舍的思维分析python二叉树,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

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

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

示例 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.

解题思路:

1,有两种选择

A,打劫根节点和孙子节点

B,打劫孩子节点

2,有5种边界情况

A,根节点空

B,左右孩子非空

C,左右孩子均空

D,左孩子空

E,右孩子空

/** * Definition for a binary tree node. * type TreeNode struct { *     Val int *     Left *TreeNode *     Right *TreeNode * } */func rob(root *TreeNode) int {    val:=0    if root==nil{        return val    }        if root.Left!=nil && root.Right!=nil{        ll:=rob(root.Left.Left)        lr:=rob(root.Left.Right)                rl:=rob(root.Right.Left)        rr:=rob(root.Right.Right)                l:=rob(root.Left)        r:=rob(root.Right)                if root.Val+ll+lr+rr+rl>l+r{            return root.Val+ll+lr+rr+rl        }        return l+r    }        if root.Left!=nil{        ll:=rob(root.Left.Left)        lr:=rob(root.Left.Right)                l:=rob(root.Left)                if root.Val+ll+lr>l{            return root.Val+ll+lr        }        return l            }        if root.Right!=nil{        rl:=rob(root.Right.Left)        rr:=rob(root.Right.Right)                r:=rob(root.Right)                if root.Val+rl+rr>r{            return root.Val+rl+rr        }        return r    }    return root.Val}

看完上述内容,你们掌握如何用打家劫舍的思维分析python二叉树的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

孩子 小偷 节点 最高 房子 房屋 金额 打家劫舍 思维 分析 内容 只有 地区 情况 方法 更多 示例 问题 解释 输入 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 百单网互联网科技有限公司 疫情对互联网科技公司影响 致聘互联网科技 深圳天众互联网科技公司 互联网 视角下的科技创新 天下捷融互联网科技 中国的互联网科技企业的崛起 欧洲十大科技互联网公司 贵州叶脉互联网科技有限公司所属行业 互联网科技有哪些公司 全球顶尖互联网科技公司 互联网还是高科技吗 互联网科技公司实习生 玉溪新华互联网科技好不好 爱医互联网络科技 梅州GM互联网络科技有限公司 半导体行业属于互联网高科技类吗 互联网科技包装股份有限公司上市 现代互联网科技公司 互联网科技企业文化 华服互联网科技靠谱吗 华宇互联网科技 狮子座互联网科技 上海卓越科技 互联网 卓越科技互联网 招聘 青海省互联网新科技 中国的互联网科技企业的崛起 内蒙古九一互联网科技 四川慕妮娅互联网科技有限公司 互联网科技如何创业
0