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

Leetcode124. 二叉树中的最大路径和(HOT100)

链接

代码:

class Solution {
    int res = INT_MIN;
public:
    int maxPathSum(TreeNode* root) {
        dfs(root);//dfs保证了我们遍历所有二叉树的节点
        return res;//res记录最大值
    }
    int dfs(TreeNode* root){
        if(!root)return 0;
        //递归计算左子树or右子树的最大值时,如果我们发现值为负数,那么我们不能再往下走了,原因是:我们在更新res时,需要累加l r,累加一个负数的值不是最大的。
        int l = max(0,dfs(root->left)),r = max(0,dfs(root->right));//int l = dfs(root->left),r = dfs(root->right);error
        res =  max(res,root->val+l+r);
        return max(l+root->val,r+root->val);//每次向上返回的时候都返回单边,给上面留出来一个接口,不能返回^这个形状,因为我们res已经记录过了
    }
};

题解:

另外,由于我们在向上返回以及更新res时需要用到l r ,且是累加的方式,那么他俩是小于0的情况时,我们应该和0取max。防止把负数累加到res,以及返回给上一层,这样我们就求不到最大值。


http://www.kler.cn/a/415103.html

相关文章:

  • 【小白学机器学习34】基础统计2种方法:用numpy的方法np().mean()等进行统计,pd.DataFrame.groupby() 分组统计
  • 【阅读记录-章节4】Build a Large Language Model (From Scratch)
  • 开发一套ERP 第七弹 RUst 操作数据库
  • Dapper简易入门
  • 【网络安全设备系列】12、态势感知
  • vue3+vite使用vite-plugin-electron-renderer插件和script-loader插件有冲突
  • blender 视频背景
  • 51单片机快速入门之中断的应用 2024/11/23 串口中断
  • AI+云环境开发上线项目全流程(sealos)
  • 111PHP 循环 - For 循环
  • [论文阅读-综述]Supervised Speech Separation Based on Deep Learning: An Overview
  • 【智能制造-43】机器人导出的轴配置问题
  • 数据库操作、锁特性
  • Java核心技术详解:Stream实例化全攻略
  • ThinkPHP Nginx 重写配置
  • 从0开始深度学习(31)——循环神经网络
  • 103.【C语言】数据结构之建堆的时间复杂度分析
  • Redis 字符串(String)
  • 前端开发项目中实现极佳的过渡动画效果
  • uniapp input只输入一个字符就自动失去焦点
  • Vue 3 学习文档(一)
  • ais_server 学习笔记
  • 列表上移下移功能实现
  • Qt Graphics View 绘图实例
  • C0034.在Ubuntu中安装的Qt路径
  • 构建现代Web应用:FastAPI、SQLModel、Vue 3与Axios的结合使用