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

JAVA算法练习题day42

今天正好做完500题,一半了。

50.二叉树中的最大路径和

# 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.ans = float("-inf")def maxPathSum(self, root):""":type root: Optional[TreeNode]:rtype: int"""#递归计算 每个节点的最大贡献值(以该节点为起点的路径和) = 该节点的值+max(left.val,right,val) 【左右是二选一的关系】#根据最大贡献值来计算最大路径和。最大贡献值在孩子节点上并非是二选一的。因为此时的路径不一定以根节点为起点。因此,当孩子节点的最大贡献值大于0时,才将此节点纳入路径。#获取节点的最大贡献值(获取 就是要 return的东西) 在递归的过程中添加逻辑语句实现最大路径和的求解。def nodeGain(node):if node is None:return 0#递归计算,当孩子节点的最大贡献值大于0时,才将此节点纳入路径left = max(nodeGain(node.left),0)right = max(nodeGain(node.right),0)#最大路径和nodegain = node.val + left + rightself.ans = max(nodegain,self.ans)#返回节点的最大贡献值,根据定义去写。也是递归的(孩子还有孩子,所以不是写node.left.val 否则逻辑错误,也会空指针报错)return node.val + max(left,right)nodeGain(root)return self.ans

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

相关文章:

  • 天津市建设工程备案网站什么是网站的层次
  • 【基础算法】BFS
  • 国家工信部网站备案查询系统公司网址怎么做出来的
  • 做网站都用到哪些软件asp源码打开网站
  • React组件生命周期节点触发时机(组件加载Mount、组件更新Update、组件卸载Unmount)组件挂载
  • 月球矩阵日志:Swift 6.2 主线程隔离抉择(上)
  • 无需 iCloud 在 iPhone 之间传输文本消息
  • Flink受管状态自定义序列化原理深度解析与实践指南
  • Unity Visual Graph粒子系统 Plexus 效果
  • 淘宝里网站建设公司可以吗无经验能做sem专员
  • seo技术秋蝉河北网站优化建设
  • C++微服务 UserServer 设计与实现
  • 设计模式篇之 迭代器模式 Iterator
  • Spring MVC 多租户架构与数据隔离教程
  • MySQL数据库如何实现主从复制
  • 如何在 Docker 中设置环境变量 ?
  • 【C++】STL容器--list的使用
  • 【深度学习计算机视觉】12:风格迁移
  • 网站到期可以续费织梦安装网站后图片
  • 公司购物网站备案wordpress恢复主题
  • C++基于opencv实现的暗通道的先验图像去雾
  • 大型PCB标定方案:基于对角Mark点的分区域识别与校准
  • 做羞羞事视频网站网站策划哪里找
  • 【Android RxJava】Observal与Subject深入理解
  • 基于Rokid CXR-S SDK的智能AR翻译助手技术拆解与实现指南
  • 【uniapp】微信小程序修改按钮样式
  • Lombok使用指南(中)
  • Threejs入门学习笔记
  • 机器学习模型评估指标AUC详解:从理论到实践
  • 凡科建站小程序网站设计的一般流程