二叉树中的最大路径和-递归
路径 被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。
路径和 是路径中各节点值的总和。
给你一个二叉树的根节点 root ,返回其 最大路径和 。
示例 1:
输入:root = [1,2,3]
输出:6
解释:最优路径是 2 -> 1 -> 3 ,路径和为 2 + 1 + 3 = 6
示例 2:
输入:root = [-10,9,20,null,null,15,7]
输出:42
解释:最优路径是 15 -> 20 -> 7 ,路径和为 15 + 20 + 7 = 42提示:
树中节点数目范围是 [1, 3 * 1 0 4 10^4 104]
-1000 <= Node.val <= 1000
class TreeNode:def __init__(self, val=0, left=None, right=None):self.val = valself.left = leftself.right = rightclass Solution:def __init__(self):self.maxSum = float("-inf")def maxPathSum(self, root: TreeNode) -> int:def maxGain(node):if not node:return 0# 递归计算左右子节点的最大贡献值# 只有在最大贡献值大于 0 时,才会选取对应子节点leftGain = max(maxGain(node.left), 0)rightGain = max(maxGain(node.right), 0)#当前节点的最大路径和等于左右子节点的贡献值与该节点值的和priceNewpath = node.val + leftGain + rightGain# 更新答案self.maxSum = max(self.maxSum, priceNewpath)# 返回节点的最大贡献值return node.val + max(leftGain, rightGain)maxGain(root)return self.maxSumif __name__ == '__main__':s = Solution()print(s.maxPathSum(TreeNode(-10, TreeNode(30), TreeNode(20, TreeNode(15), TreeNode(7)))))
最大的路径和肯定是一条包含节点左右子树的路径,这个节点是这个路径的根节点(23,25行),但除了这个节点以外,路径上的其他节点只能有一棵子树(28行)
相关文章:
二叉树中的最大路径和-递归
路径 被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。 路径和 是路径中各节点值的总和。 给你一个二叉树的根节点 root…...
Python if-else 速记
文章目录 在 Python 中使用三元运算符作为 if-else 速记总结 编程中经常使用速记符号来简化我们的工作。 速记符号是一种可以更简洁、更省时省力地完成工作的方法。 本文将讨论 Python 中使用的速记符号作为 if-else 语句的快捷方式。 在 Python 中使用三元运算符作为 if-else…...
Python使用内置的json模块来处理JSON数据
目录 1、解释说明: 2、使用示例: 3、注意事项: 1、解释说明: 在Python中,我们可以使用内置的json模块来处理JSON数据。这个模块提供了四个主要的函数:dumps、loads、dump、load。 - dumps:将…...
亿赛通电子文档安全管理系统 RCE漏洞
亿赛通电子文档安全管理系统 RCE漏洞 一、 产品简介二、 漏洞概述三、 复现环境四、 漏洞复现小龙POC检测: 五、 修复建议 免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失…...
信息安全面试题合集
0x00 前言 本篇会记录一些可能会遇到的面试题,持续更新 0x01 Web SQL注入 sql注入常见的闭合方式有哪些?Mysql5.0上下sql注入有什么区别?SQL注入空格被过滤,有什么绕过方式?过滤了逗号,有什么绕过方式&…...
vue 简单实验 自定义组件 传参数 props
1.代码 <script src"https://unpkg.com/vuenext" rel"external nofollow" ></script> <div id"todo-list-app"><todo-item v-bind:todo"todo1"></todo-item> </div> <script> const ListR…...
目标检测笔记(十一):如何结合特定区域进行目标检测(基于OpenCV的人脸检测实例)
文章目录 背景代码结果 背景 由于我们在做项目的时候可能会涉及到某个指定区域进行目标检测或者人脸识别等任务,所以这篇博客是为了探究如何在传统目标检测的基础上来结合特定区域进行检测,以OpenCV自带的包为例。 一般来说有两种方式实现区域指定&…...
PID直观感受简述
0、仿真控制框图 1、增加p的作用(增加响应)P 2、增加I的作用(消除稳差)PI 3、增加D的作用(抑制波动)PID 加入对噪声很敏 4、综合比对...
Tomcat运行后localhost:8080访问自己编写的网页
主要是注意项目结构,home.html放在src/resources/templates下的home.html下,application.properties可以不做任何配置。还有就是关于web包的位置,作者一开始将web包与tabtab包平行,访问8080出现了此类报错: Whitelabel…...
传感网应用开发1+X实训室建方案
一、概述 1.1建设背景 从院校实际教学情况与人才培养计划为出发点,贯彻传感网应用开发1X实训室职业技能等级标准,充分考虑传感网应用开发1X实训室从业人员的职业发展路径与成长路径,以职业素养、职业技能、知识水平为主要框架结构ÿ…...
PDF校对:让您的文件无瑕疵
无论您是企业家、学生、教育者还是作家,我们都知道,提交或发布一个充满错误的PDF文件可能会给您的声誉或品牌带来严重损害。这就是为什么PDF校对如此关键的原因。现在,让我们深入了解PDF校对的重要性,以及如何确保您的文件尽可能完…...
SpringBoot--解决空字符串转枚举异常
原文网址:SpringBoot--解决空字符串转枚举异常_IT利刃出鞘的博客-CSDN博客 简介 本文介绍如何解决Java的SpringBoot中空字符串转枚举时报错的问题。 问题复现 org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot d…...
Redis的常用数据类型详解
Redis是一个开源的、基于内存的数据结构存储系统,它可以用作数据库、缓存和消息代理。Redis支持多种数据类型,包括字符串、列表、集合、有序集合、散列等。理解这些数据类型的特性和使用方式,对于充分利用Redis的能力至关重要。以下是对Redis…...
jpa里IdentityGenerator和IncrementGenerator的区别
IdentityGenerator 和 IncrementGenerator 的区别 IdentityGenerator 和 IncrementGenerator 都是 JPA 中可用的主键生成策略(GenerationType)之一。它们的区别如下: IdentityGenerator: IDENTITY 主键生成策略利用数据库自动生成的主键。在…...
基于element UI 实现 table 列 拖拽
问题描述 在开发中遇到一个需求,即实现table列的拖拽,但是调研发现,大部分是基于sorttable.js这个包实现的,但是通过实际应用,发现sorttable.js用在操作element table 组件中并不是很舒服,总会莫名其妙的冒…...
(GPT、GEE)遥感云大数据、洪涝灾害监测、红树林遥感制图、河道轮廓监测、洪涝灾害监测、GRACE重力卫星、源遥感影像
近年来遥感技术得到了突飞猛进的发展,航天、航空、临近空间等多遥感平台不断增加,数据的空间、时间、光谱分辨率不断提高,数据量猛增,遥感数据已经越来越具有大数据特征。遥感大数据的出现为相关研究提供了前所未有的机遇…...
vue中实现将页面或者div内容导出为pdf格式
将Vue单页面转成pdf并下载 步骤1:下载对应的库 npm install html2canvas;npm install jspdf --save 步骤2:创建一个htmlToPdf.js的js文件, 然后在main.js中全局引用一下,编写如下代码: // htmlToPdf.js // 导出页面为PDF格式 …...
Ubuntu 配置国内源
配置国内源 因为众所周知的原因,国外的很多网站在国内是访问不了或者访问极慢的,这其中就包括了Ubuntu的官方源。 所以,想要流畅的使用apt安装应用,就需要配置国内源的镜像。 市面上Ubuntu的国内镜像源非常多,比较有…...
分布式核心知识
文章目录 前言一、分布式中的远程调用1.1RESTful接口1.2RPC协议1.3区别与联系 二、分布式中的CAP原理 前言 关于分布式核心知识详解 一、分布式中的远程调用 在微服务架构中,通常存在多个服务之间的远程调用的需求。远程调用通常包含两个部分:序列化和通…...
【JMeter】常用线程组设置策略
目录 一、前言 二、单场景基准测试 1.介绍 2.线程组设计 3.测试结果 三、单场景并发测试 1.介绍 2.线程组设计 3.测试结果 四、单场景容量/爬坡测试 1.介绍 2.线程组设计 3.测试结果 五、混合场景容量/并发测试 1.介绍 六、稳定性测试 1.介绍 2.线程组设计 …...
模型微调集成:OpenClaw调用Qwen3-32B的LoRA适配器实战
模型微调集成:OpenClaw调用Qwen3-32B的LoRA适配器实战 1. 为什么需要本地微调模型接入? 去年我在处理一批医疗文献自动化摘要任务时,发现通用大模型对专业术语的理解总差那么一口气。当模型把"冠状动脉搭桥术"解释成"心脏旁…...
WWW-万维网
万维网的概念与组成结构万维网(World Wide Web,WWW)是一个分布式的信息存储空间,在这个空间中:一个事物被称为一样 “资源”,并由一个全域 “统一资源定位符”(URL)标识。这些资源通…...
轨迹规划实战:用多项式插值+粒子群玩转机械臂运动优化
轨迹规划 路径规划 matlab 353多项式插值 基于改进粒子群算法 时间最优 针对六自由度 四自由度都可以,轨迹规划,多项式插值,更改轨迹点位置就可以搞机器人轨迹规划最头疼的就是既要轨迹丝滑又要时间最短。今天咱们用Matlab整点狠活—…...
半导体仿真进阶:如何用Silvaco DOPING语句精确控制掺杂分布
半导体仿真进阶:如何用Silvaco DOPING语句精确控制掺杂分布 在半导体器件设计与工艺开发中,精确控制掺杂分布是决定器件性能的关键因素之一。Silvaco TCAD工具链中的DOPING语句,为工程师提供了从简单均匀掺杂到复杂梯度分布的灵活控制能力。…...
PlayCover如何重塑Mac游戏体验?社交与云服务革新玩法深度解析
PlayCover如何重塑Mac游戏体验?社交与云服务革新玩法深度解析 【免费下载链接】PlayCover Community fork of PlayCover 项目地址: https://gitcode.com/gh_mirrors/pl/PlayCover PlayCover作为一款开源的Mac iOS模拟器,通过深度整合Discord社交功…...
Flowable 7.x 实战:手把手教你从数据库里捞出BPMN2.0 XML并优雅展示(Vue3 + Spring Boot)
Flowable 7.x 实战:从数据库提取BPMN2.0 XML的工程化实现(Vue3 Spring Boot全链路解析) 在流程引擎的实际应用中,BPMN2.0 XML作为流程定义的标准化载体,其可视化展示能力直接影响开发调试效率。本文将完整演示如何构建…...
python-flask-djangol框架的考公考编学习课程资料推荐系统
目录技术选型与架构设计数据采集与处理推荐算法实现用户画像构建前端交互与功能部署与优化合规与扩展项目技术支持源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作技术选型与架构设计 采用Python Flask作为后端框架,搭配SQLAlch…...
基于扩散模型的歌声合成技术:DiffSinger架构解析与实践应用
基于扩散模型的歌声合成技术:DiffSinger架构解析与实践应用 【免费下载链接】DiffSinger 项目地址: https://gitcode.com/gh_mirrors/dif/DiffSinger DiffSinger作为开源歌声合成领域的创新解决方案,通过扩散模型与深度学习技术的深度融合&#…...
E-Hentai Downloader 终极使用指南:从零开始掌握开源项目配置教程
E-Hentai Downloader 终极使用指南:从零开始掌握开源项目配置教程 【免费下载链接】E-Hentai-Downloader Download E-Hentai archive as zip file 项目地址: https://gitcode.com/gh_mirrors/eh/E-Hentai-Downloader 你是否经常在E-Hentai网站上遇到下载困难…...
寻音捉影·侠客行多场景落地:覆盖会议/媒体/司法/金融/教育五大垂直领域
寻音捉影侠客行多场景落地:覆盖会议/媒体/司法/金融/教育五大垂直领域 1. 产品核心功能解析 寻音捉影侠客行是一款基于先进语音识别技术的音频关键词检索工具,它能够像江湖中的隐士高手一样,在浩瀚的音频海洋中精准定位特定关键词。这款工具…...

