当前位置: 首页 > news >正文

腾讯云网站建设教学视频南京市招办南京网站设计

腾讯云网站建设教学视频,南京市招办南京网站设计,广州网页设计薪酬,WordPress多用户建站题目: 二叉树中的路径被定义为一条节点序列,序列中每对相邻节点之间都存在一条边,同一个节点在一条路径序列中至多出现一次,该路径至少包含一个节点,且不一定经过根节点。 路径和是路径中各节点值得总和,…

题目:

二叉树中的路径被定义为一条节点序列,序列中每对相邻节点之间都存在一条边,同一个节点在一条路径序列中至多出现一次,该路径至少包含一个节点,且不一定经过根节点。

路径和是路径中各节点值得总和,给定二叉树得根节点root,返回其最大路径和


方法一:递归

首先,考虑实现一个简化的函数 maxGain(node),该函数计算二叉树中的一个节点的最大贡献值,具体而言,就是在以该节点为根节点的子树中寻找以该节点为起点的一条路径,使得该路径上的节点值之和最大。

  • 空节点的最大贡献值等于 0

  • 非空节点的最大贡献值等于节点值与其子节点中的最大贡献值之和(对于叶节点而言,最大贡献值等于节点值)

 

叶节点 9、15、7 的最大贡献值分别为 9、15、7。得到叶节点的最大贡献值之后,再计算非叶节点的最大贡献值。节点 20 的最大贡献值等于 20+max(15,7)=35,点 −10 的最大贡献值等于 −10+max(9,35)=25,

上述计算过程是递归的过程,因此,对根节点调用函数 maxGain,即可得到每个节点的最大贡献值。

根据函数 maxGain 得到每个节点的最大贡献值之后,如何得到二叉树的最大路径和?对于二叉树中的一个节点,该节点的最大路径和取决于该节点的值与该节点的左右子节点的最大贡献值,如果子节点的最大贡献值为正,则计入该节点的最大路径和,否则不计入该节点的最大路径和。维护一个全局变量 maxSum 存储最大路径和,在递归过程中更新 maxSum 的值,最后得到的 maxSum 的值即为二叉树中的最大路径和。

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution(object):def __init__(self):self.maxSum=-1e9def maxPathSum(self, root):""":type root: Optional[TreeNode]:rtype: int"""def maxGain(node):if not node:return 0#递归计算左右子节点的最大贡献值,只有在最大贡献值大于 0 时,才会选取对应子节点leftGain=max(maxGain(node.left),0)rightGain=max(maxGain(node.right),0)#节点的最大路径和取决于该节点的值与该节点的左右子节点的最大贡献值priceNewpth=node.val+leftGain+rightGain#更新答案self.maxSum=max(self.maxSum,priceNewpth)#返回节点最大贡献值return node.val+max(leftGain,rightGain)maxGain(root)return self.maxSum

时间复杂度:O(N)N 是二叉树中的节点个数。对每个节点访问不超过 2 次。

空间复杂度:O(N)主要取决于递归调用层数,最大层数等于二叉树的高度,最坏情况下,二叉树的高度等于二叉树中的节点个数

源自力扣官方题解
 

http://www.dtcms.com/a/492098.html

相关文章:

  • 营销型手机网站网站建设都会用到哪些建站工具
  • 太原建南站谷歌seo价格
  • 做零食的网站网页设计叫什么职业
  • 【11408学习记录】考研数学突破:掌握二次型定义及其矩阵表达
  • 做网站需要什么编程语言微信自己开发小程序
  • 接订单去哪个网站zencart wordpress
  • trswcm网站建设推推蛙seo顾问
  • 网站管理建站昆山网站建设 熊掌号
  • 2024年江苏省大学生电子设计竞赛 || 无线传输信号模拟系统
  • 安阳如何建立自己的网站平台数据库营销案例
  • 自建网站系统wordpress首页添加视频教程
  • 第20篇:如何系统入门机器学习?——从迷茫到精通的认知升级之路
  • 网站怎样和首页做链接有什么做设计接任务的网站
  • C语言 #pragma once - C语言零基础入门教程
  • window Server 手柄驱动,这里提供一个思路,可用于Windows Server 的Xbox One手柄、接收器驱动
  • 2008 访问网站提示建设中微信建一个网站
  • IO多路复用——Linux应用(8)
  • 有可以做推广的网站吗扫图片识别图片原图
  • K8S(十)—— Kubernetes核心组件详解:Pod控制器与配置资源管理
  • Agent和AI大模型的区别是什么
  • 齐齐哈尔城市建设档案馆网站网站建设服务包括什么
  • 别人不能注册我的wordpress站wordpress需要开什么端口
  • 网站申请名称和域名虚拟主机代理
  • 网站制作项目分析怎么做 方法网站建设架构细节
  • 企业网站建设费用 珠海网站前台功能模块设计
  • Polar MISC (
  • 河海大学土木专业类建设网站网站建设宣传
  • 源网荷储一体化光储充能量管理系统解决方案助力能源转型
  • 9-一些关键字
  • 免费企业网站程序asp网络销售怎么跟客户聊天