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

龙口市规划建设局网站南京app开发公司排名

龙口市规划建设局网站,南京app开发公司排名,沈阳网站制作流程,朝阳公园网站建设题目 思路 这道题我们可以考虑用递归来解决。 首先设计一个maxPath函数用来递归计算二叉树中一个节点的最大贡献值,具体来说,就是以该节点为根节点的子树中寻找以该节点为起点的一条路径,使得该路径上的节点值之和最大。 如果该节点为空&a…

题目

思路

这道题我们可以考虑用递归来解决。

首先设计一个maxPath函数用来递归计算二叉树中一个节点的最大贡献值,具体来说,就是以该节点为根节点的子树中寻找以该节点为起点的一条路径,使得该路径上的节点值之和最大。

如果该节点为空,则最大贡献值为0。

如果非空,最大贡献值就等于节点值与其子节点中的最大贡献值之和

过程分析

假设二叉树如下

递归步骤:

1. 节点 20

  1. 左子树:空,leftGain = 0。
  2. 右子树:空,rightGain = 0。
  3. sum = 20 + 0 + 0 = 20。
  4. 更新 maxsum = max(INT_MIN, 20) = 20。
  5. 返回 20 + max(0, 0) = 20。

2. 节点 1

  1. 左子树:空,leftGain = 0。
  2. 右子树:节点 3。

节点 3:

  1. 左子树:空,leftGain = 0。
  2. 右子树:空,rightGain = 0。
  3. sum = 3 + 0 + 0 = 3。
  4. 更新 maxsum = max(20, 3) = 20。
  5. 返回 3 + max(0, 0) = 3。
  1. rightGain = 3。
  2. sum = 1 + 0 + 3 = 4。
  3. 更新 maxsum = max(20, 4) = 20。
  4. 返回 1 + max(0, 3) = 4。

3.  节点 2

  1. 左子树:节点 20,leftGain = 20。
  2. 右子树:节点 1,rightGain = 4。
  3. sum = 2 + 20 + 4 = 26。
  4. 更新 maxsum = max(20, 26) = 26。
  5. 返回 2 + max(20, 4) = 22。

4.  节点 10(根节点)

  1. 左子树:节点 2,leftGain = 22。
  2. 右子树:节点 10。

节点 10:

左子树:空,leftGain = 0。

右子树:节点 -25。

节点 -25:

左子树:空,leftGain = 0。

右子树:空,rightGain = 0。

sum = -25 + 0 + 0 = -25。

更新 maxsum = max(26, -25) = 26。

返回 -25 + max(0, 0) = -25。

rightGain = 0(因为 -25 是负数,被置为 0)。

sum = 10 + 0 + 0 = 10。

更新 maxsum = max(26, 10) = 26。

返回 10 + max(0, 0) = 10。

rightGain = 10。

sum = 10 + 22 + 10 = 42。

更新 maxsum = max(26, 42) = 42。

返回 10 + max(22, 10) = 32。

最大路径和为 42,路径为 20 -> 2 -> 10 -> 10

代码

class Solution {
private:int maxsum = INT_MIN;
public:int maxPathSum(TreeNode* root) {maxPath(root);return maxsum;}int maxPath(TreeNode* node){    if(node == nullptr)return 0;int leftGain = max(maxPath(node->left),0);int rightGain = max(maxPath(node->right),0);int sum = node->val + leftGain + rightGain;maxsum = max(maxsum,sum);return node->val + max(leftGain, rightGain);}
};

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

相关文章:

  • 解决 Hugging Face 国内下载慢的问题:用 ModelScope 替代加速模型获取
  • 从基础到深入:自然语言处理核心技术全梳理(有 ML/DL 基础)
  • 合肥建设公司网站wordpress 个人电脑
  • 做网站需要哪些方面的支出新媒体运营需要学什么
  • 云手机群控是什么意思
  • 【ecfw】ecfw构建基础
  • 常州二建建设有限公司官方网站聊城做wap网站哪儿好
  • php做网站需要html国外设计公司名字
  • CUDA nvjpeg库编码jpeg图像
  • AI 工作流实战 - 调用豆包api实现批量生图
  • 如何编写您的第一个 Linux 设备驱动程序(一)
  • 做更好的自己 网站客户又找不到你
  • Spring MVC 封装全局统一异常处理
  • 海尔建设网站的内容wordpress设置教程
  • Flutter---EQ均衡器
  • 响应式食品企业网站网站的外链是什么
  • 【Protobuf】proto3语法详解1
  • 网站备案要做家居网站设计
  • VS2022+DirectX9之创建DirectX9设备
  • unordered_map和unordered_set的封装与简单测试
  • (Kotlin协程十六)try/catch 可以捕获子协程的异常吗?为什么?
  • 网站移动端怎么做的做外国网站怎么买空间
  • 图像的脉冲噪声和中值滤波
  • 3.4特殊矩阵的压缩存储
  • SpringAI+DeepSeek大模型应用开发
  • 递归-24.两两交换链表中的节点-力扣(LeetCode)
  • 【Java零基础·第12章】Lambda与Stream API
  • Qemu-NUC980(八):GPIO Controller
  • 外贸型企业网站建设开源商城源码
  • JS逆向-安全辅助项目Yakit热加载魔术方法模版插件语法JSRpc进阶调用接口联动