树-二叉树的最大路径和

一、问题描述

二、解题思路

因为各个节点的值可能为负数,初始化res(最大路径和)的值为最小整数:Integer.MIN_VALUE

我们这里使用深度遍历(递归)的方法,先看某一个子树的情况:

这里有一个技巧,如果左、右子树贡献的值小于0时,可以将这个值设置为0,等价于舍弃该子树。

此时最大值为:res=Math.max(res,rootVal+leftVal+rightVal)

这里的rootVal+leftVal+rightVal包含多种情况(在递归过程中在下面值内保持最大值,这里好好理解一下,很巧妙的感觉):

  • 只有左子树:根节点和右子树一起贡献负值
  • 左子树+根节点:此时右子树贡献负值:橘黄色箭头标识路径
  • 只有根节点:左右子树均贡献负值
  • 根节点+右子树:此时左子树贡献负值:蓝色箭头标识路径
  • 只有右子树:左子树和根节点一起贡献负值
  • 左子树+根节点+右子树贡献的值:红色箭头标识路径

三、代码实现

import java.util.*;/** public class TreeNode {*   int val = 0;*   TreeNode left = null;*   TreeNode right = null;*   public TreeNode(int val) {*     this.val = val;*   }* }*/public class Solution {int res=Integer.MIN_VALUE;/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param root TreeNode类 * @return int整型*/public int maxPathSum (TreeNode root) {if(root==null){return 0;}// 使用dfs记录路径和并返回resdfs(root);return res;}//从根节点深度遍历,public int dfs(TreeNode root){if(root==null){return 0;}int leftchildVal=Math.max(dfs(root.left),0);int rightchildVal=Math.max(dfs(root.right),0);int maxval=leftchildVal>rightchildVal?leftchildVal:rightchildVal;res=Math.max(res,root.val+leftchildVal+rightchildVal);return root.val+maxval;}
}

四、刷题链接

二叉树中的最大路径和_牛客题霸_牛客网

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/346695.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

纷享销客安全体系:安全运维运营

安全运维运营(Security Operations,SecOps)是指在信息安全管理中负责监控、检测、响应和恢复安全事件的一系列运营活动。它旨在保护组织的信息系统和数据免受安全威胁和攻击的损害。 通过有效的安全运维运营,组织可以及时发现和应对安全威胁,减少安全事…

【Linux文件篇】系统文件、文件描述符与重定向的实用指南

W...Y的主页 😊 代码仓库分享💕 前言:相信大家对文件都不会太陌生、也不会太熟悉。在没有学习Linux操作系统时,我们在学习C或C时都学过如何去创建、打开、读写等待文件的操作,知道一些语言级别的一些接口与函数。但…

【Pytorch】一文向您详细介绍 torch.tensor() 的常见用法

【Pytorch】一文向您详细介绍 torch.tensor() 的常见用法 下滑即可查看博客内容 🌈 欢迎莅临我的个人主页 👈这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地!🎇 🎓 博主简介:985高校的普通…

盲盒小程序推广与运营策略的挑战

随着盲盒经济的兴起,越来越多的商家开始关注并尝试开发盲盒小程序。然而,在推广和运营盲盒小程序的过程中,我们也不可避免地会遇到一些挑战。下面,我将就用户获取、留存以及活跃度提升等方面,探讨这些挑战及可能的应对…

【Linux】生产者消费者模型——阻塞队列BlockQueue

> 作者:დ旧言~ > 座右铭:松树千年终是朽,槿花一日自为荣。 > 目标:理解【Linux】生产者消费者模型——阻塞队列BlockQueue。 > 毒鸡汤:有些事情,总是不明白,所以我不会坚持。早安!…

【网络安全】网络安全基础精讲 - 网络安全入门第一篇

目录 一、网络安全基础 1.1网络安全定义 1.2网络系统安全 1.3网络信息安全 1.4网络安全的威胁 1.5网络安全的特征 二、入侵方式 2.1黑客 2.1.1黑客入侵方式 2.1.2系统的威胁 2.2 IP欺骗 2.2.1 TCP等IP欺骗 2.2.2 IP欺骗可行的原因 2.3 Sniffer探测 2.4端口扫描技术…

知识付费小程序源码系统 一键拥有属于自己的知识店铺 带完整的安装代码包以及搭建教程

系统概述 在数字化时代,知识已成为最具价值的资产之一。随着互联网技术的飞速发展,知识付费市场迎来了前所未有的发展机遇。为了帮助广大内容创作者、教育机构及个人轻松搭建专属的知识店铺,一款高效、易用的知识付费小程序源码系统应运而生…

架构设计-用户信息及用户相关的密码信息设计

将用户的基本信息和用户密码存放在不同的数据库表中是一种常见的安全做法,这种做法旨在增强数据的安全性和管理的灵活性。以下是这种做法的几个关键原因: 安全性增强: 当用户密码被单独存放在一个表中时,可以使用更强大的加密和哈…

超详解——Python模块文档——基础篇

目录 1. Unix起始行 示例: 2. 对象和类型 示例: 3. 一切都是对象 示例: 4. 理解对象和引用 示例: 5. 理解对象和类型 示例: 6. 标准类型 示例: 7. 其他内建类型 示例: 8. 类型的类…

东南亚电商Tiki、Qoo10:如何用自养号测评提升产品曝光和销量

随着互联网的普及和全球化的推进,跨境电商在东南亚地区日益繁荣。Tiki、Qoo10作为该地区的电商巨头,不仅吸引了大量消费者,也成为了卖家竞相角逐的战场。为了在这场竞争中脱颖而出,卖家们纷纷采用测评这一方式来提升产品销量。本文…

弱智吧”,人类抵御AI的最后防线

“写遗嘱的时候错过了deadline怎么办?” “怀念过去是不是在时间的长河里刻舟求剑?” “英语听力考试总是听到两个人在广播里唠嗑,怎么把那两个干扰我做题的人赶走?” 以上这些饱含哲学但好像又莫名其妙的问题,出自…

MySQL复习题(期末考试)

MySQL复习题(期末考试) 1.MySQL支持的日期类型? DATE,DATETIME,TIMESTAMP,TIME,TEAR 2.为表添加列的语法? alter table 表名 add column 列名 数据类型; 3.修改表数据类型的语法是? alter table 表名 modify 列名 新…

在windows10 安装子系统linux(WSL安装方式)

在 windows 10 平台采用了WSL安装方式安装linux子系统 1 查找自己想要安装的linux子系统 wsl --list --online 2 在线安装 个人用Debian比较多,这里选择Debian,如下图: wsl --install -d Debian 安装过程中有一步要求输入用户名与密码&…

LNMP与动静态网站介绍

Nginx发展 Nginx nginx http server Nginx是俄罗斯人 Igor Sysoev(伊戈尔.塞索耶夫)开发的一款高性能的HTTP和反向代理服务器。 Nginx以高效的epoll.kqueue,eventport作为网络IO模型,在高并发场景下,Nginx能够轻松支持5w并发连接数的响应,并…

【Go语言精进之路】构建高效Go程序:了解切片实现原理并高效使用

🔥 个人主页:空白诗 🔥 热门专栏:【Go语言精进之路】 文章目录 引言一、切片究竟是什么?1.1 基础的创建数组示例1.2 基础的创建切片示例1.3 切片与数组的关系 二、切片的高级特性:动态扩容2.1 使用 append …

分布式一致性理论

分布式一致性理论 1.数据库事务ACID理论 为保证事务正确可靠而必须具备的四个核心特性。这四个特性分别是:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(D…

社交创新:Facebook的技术与产品发展

在当今数字化时代,社交网络已经渗透到我们生活的方方面面,成为了人们日常交流、信息获取和社交互动的主要方式。而在这个众多社交平台中,Facebook作为其中的佼佼者,其技术与产品的发展历程也是一个社交创新的缩影。本文将探索Face…

六、【源码】SQL执行器的定义和实现

源码地址:https://github.com/mybatis/mybatis-3/ 仓库地址:https://gitcode.net/qq_42665745/mybatis/-/tree/06-sql-executor SQL执行器的定义和实现 之前的Sql执行都是耦合在SqlSession里的,现在要对这部分进行解耦和重构,引…

《软件定义安全》之三:用软件定义的理念做安全

第3章 用软件定义的理念做安全 1.不进则退,传统安全回到“石器时代” 1.1 企业业务和IT基础设施的变化 随着企业办公环境变得便利,以及对降低成本的天然需求,企业始终追求IT集成设施的性价比、灵活性、稳定性和开放性。而云计算、移动办公…

FiRa标准UWB MAC实现(三)——距离如何获得?

继续前期FiRa MAC相关介绍,将FiRa UWB MAC层相关细节进一步进行剖析,介绍了UWB技术中最重要的一个点,高精度的距离是怎么获得的,具体使用的测距方法都有哪些,原理又是什么。为后续FiRa UWB MAC的实现进行铺垫。 3、测距方法 3.1 SS-TWR SS-TWR为Single-Sided Two-Way Ra…