news 2026/6/21 23:27:08

力扣337 打家劫舍 III java实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
力扣337 打家劫舍 III java实现

337.打家劫舍 III

小偷又发现了一个新的可行窃的地区。这个地区只有一个入口,我们称之为root

除了root之外,每栋房子有且只有一个“父“房子与之相连。一番侦察之后,聪明的小偷意识到“这个地方的所有房屋的排列类似于一棵二叉树”。 如果两个直接相连的房子在同一天晚上被打劫,房屋将自动报警。

给定二叉树的root。返回在不触动警报的情况下,小偷能够盗取的最高金额

示例 1:

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

示例 2:

输入:root = [3,4,5,1,3,null,1]输出:9解释:小偷一晚能够盗取的最高金额 4 + 5 = 9

提示:

  • 树的节点数在[1, 104]范围内
  • 0 <= Node.val <= 104

该题是二叉树形状的打家劫舍的问题,可以用递归来返回选或不选的问题,每层的递归返回一个数组,res[2],其中res[0]表示不选当前节点的最大值,即要计算可选左右孩子节点的最大和,res[1]表示选当前节点,不选当前节点的左右节点的值。

public static void main(String[] args) { // 测试用 TreeNode root = new TreeNode(3); root.left = new TreeNode(2); root.right = new TreeNode(3); root.left.right = new TreeNode(3); root.right.right = new TreeNode(1); System.out.println(rob(root)); } public static int rob(TreeNode root) { int[] res = helper(root); return Math.max(res[0], res[1]); } public static int[] helper(TreeNode root){ int[] res = new int[2]; if (root == null){ return res; } int[] left = helper(root.left); int[] right = helper(root.right); res[0] = Math.max(left[0], left[1]) + Math.max(right[0], right[1]); res[1] = root.val + left[0] + right[0]; return res; }

以上为记录分享用,代码较差请见谅

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/16 18:32:18

2025年数据恢复软件免费版最真实推荐—— 18年老工程师深度评测

大家好&#xff0c;我是做了18年数据恢复的工程师&#xff0c;每天都在和各种丢失数据打交道。免费软件到底能不能救数据&#xff1f;我的结论是&#xff1a;能&#xff0c;但极其有限。绝大多数情况下&#xff0c;免费版只能救“轻度丢失”&#xff0c;真正严重的情况&#xf…

作者头像 李华
网站建设 2026/6/20 13:26:53

不同类型的代理服务器解析

代理的差异各不相同 - 尤其是住宅代理和数据中心代理之间。这意味着重新路由和 IP 隐藏的方法因代理类型而异。住宅代理会为每个来自物理设备的连接分配一个新 IP。而数据中心代理服务则从数据中心获取 IP。也就是说&#xff0c;它们不会为每个请求分配新 IP。以下是不同类型的…

作者头像 李华
网站建设 2026/6/19 2:47:15

【网络安全】DDoS攻击详解

一、DDoS是什么&#xff1f; 首先DDoS的缩写是&#xff08;Distributed Denial of Service&#xff0c;简称DDoS&#xff09;&#xff0c;即分布式拒绝服务&#xff0c;是指黑客将多台计算机联合起来作为攻击平台&#xff0c;通过远程连接&#xff0c;利用恶意程序对一个或多个…

作者头像 李华
网站建设 2026/6/14 14:18:44

‌如何平衡代码与生活?开发者的时间管理革命

在软件测试领域&#xff0c;从业者们每日与代码为伴&#xff0c;却常陷入“24/7待机”的泥潭——繁复的测试用例、紧迫的发布周期和永无止境的bug修复&#xff0c;让个人生活沦为牺牲品。根据2025年全球开发者调查报告&#xff0c;超过70%的测试工程师报告工作与生活严重失衡&a…

作者头像 李华
网站建设 2026/6/18 9:01:21

2026年新角色:AI安全工程师的崛起与机遇

引言&#xff1a;测试工程师的AI化生存 2026年AI渗透率达87%的产业环境中&#xff08;Gartner最新数据&#xff09;&#xff0c;传统软件测试正面临范式重构。当ChatGPT-5成为基础开发工具&#xff0c;当自动驾驶系统通过OTA每秒更新决策模型&#xff0c;测试工程师的核心使命…

作者头像 李华
网站建设 2026/6/19 9:31:41

软件测试工程师的LinkedIn个人品牌术:吸引猎头的终极指南

在当今数字化招聘时代&#xff0c;LinkedIn已成为猎头搜寻人才的首要平台。对于软件测试工程师而言&#xff0c;构建强大的个人品牌不仅能提升职业可见度&#xff0c;还能在竞争激烈的市场中脱颖而出。数据显示&#xff0c;85%的猎头通过LinkedIn筛选候选人&#xff0c;而测试工…

作者头像 李华