50 二叉树中的最大路径和

news2024/11/26 16:38:03

二叉树中的最大路径和

    • 题解1 DFS

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

路径和 是路径中各节点值的总和。

给你一个二叉树的根节点 root ,返回其 最大路径和
在这里插入图片描述
提示:

  • 树中节点数目范围是 [ 1 , 3 ∗ 1 0 4 ] [1, 3 * 10^4] [1,3104]
  • -1000 <= Node.val <= 1000

题解1 DFS

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
class Solution {
    int val = INT_MIN;
public:
    // 自底向上构建,每个结点返回自己的贡献值 
    // 比自上向下要节省时间
    int dfs(TreeNode* root){
    // 0 ——避开INT_MIN + INT_MIN
        if(! root) return 0;
        
    // 呼应 0(意义:值为非正无贡献)
    	// 左树贡献
        int l = max(0, dfs(root->left));
        // 右树贡献
        int r = max(0, dfs(root->right));
        
        // 返回值是关键:
        // l+r+root->val 是以当前此结点为起点的路径 的最大值
        val = max(val, l+r+root->val);
        // KEY !!!!!!!!!!!
        // max(l, r): 因为程序栈LIFO,即从高一层的root往下走,不能重复经过某一结点
        // 所以结点贡献值是要选择左右子树某一棵
        return root->val+max(l, r);
    }
    int maxPathSum(TreeNode* root) {
        dfs(root);
        return val;
    }
};

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1089397.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring中PointcutAdvisor和IntroductionAdvisor梳理

一、Advisor Advisor是SpringAOP的顶层抽象&#xff0c;用来管理Advice和Pointcut 1、Advice也叫增强器 Spring中有五种增强&#xff1a;BeforeAdvide&#xff08;前置增强&#xff09;、AfterAdvice&#xff08;后置增强&#xff09;、RoundAdvice&#xff08;环绕增强&#…

论文导读 | 7月8月上旬MSOM文章精选

编者按 淘宝店承诺的交货时间早些还是晚些更有利&#xff1f; 波动的市场环境下如何进行分布式储能的选址与运营&#xff1f; 企业存在服务竞争时如何对待“共享库存”这一模式&#xff1f; 网约车平台在线派单时能否综合权衡司机资质、等待时间、订单远近等多种因素&#xff1…

供应链 | 在线平台系列解读(三):B2C 平台市场中物流战略与平台渠道结构设计之间的相互作用

论文解读&#xff1a;张怡雯&#xff0c;温梓曦&#xff0c;肖善&#xff0c;杨子豪 The interplay between logistics strategy and platform’s channel structure design in B2C platform market 原文作者信息 H. Liu, T. Xu, S. Jing, Z. Liu, S. Wang (2023) The interpl…

Java语法基础案例(二)

目录 案例六&#xff1a;抢红包 案例七&#xff1a;找素数 方法一&#xff1a; 方法二&#xff1a; 方法三&#xff1a; 案例八&#xff1a;实现双色球 关于本项目所用所有方法的解释&#xff1a; 案例六&#xff1a;抢红包 一个大V直播时发起了抢红包活动&#xff0c;分…

PyQt5 PyQt6 Designer 的安装

pip国内的一些镜像 阿里云 http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/ 豆瓣(douban) http://pypi.douban.com/simple/ 清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/ 中国科学技术大学 http://pypi.mirrors.ustc.…

力扣164最大间距

1.前言 因为昨天写了一个基数排序&#xff0c;今天我来写一道用基数排序实现的题解&#xff0c;希望可以帮助你理解基数排序。 这个题本身不难&#xff0c;就是线性时间和线性额外空间(O(n))的算法&#xff0c;有点难实现 基数排序的时间复杂度是O(d*(nradix))&#xff0c;其中…

HTML图片标签(2) HTML5+CSS3+移动web 前端开发入门笔记(三)

图片标签 HTML中&#xff0c;可以使用标签来插入图片。具体的语法为&#xff1a; <img src"图片路径" alt"替代文本">其中&#xff0c;src属性用于指定图片的路径&#xff0c;可以是相对路径或绝对路径。常见的有相对当前HTML文件的路径&#xff0…

Golang 实现接口和继承

小猴子继承了老猴子&#xff0c;这样老猴子拥有的能力包括字段&#xff0c;方法就会自动的被老猴子继承。 小猴子不需要做任何处理就可以拿到老猴子的字段和它的方法&#xff0c;因为是继承关系。 但是小猴子还会其他的技能&#xff0c;比如还会像小鸟一样飞翔&#xff0c;希…

国际减灾日 | 智慧减灾——百分点科技的数据科学视角

国际减轻自然灾害日简称“国际减灾日”&#xff0c;由联合国于1989年设立&#xff0c;旨在关注全球灾害风险&#xff0c;呼吁各国政府、组织和个人积极参与减灾工作&#xff0c;以保护人民生命财产安全。今年10月13日是第34个国际减灾日&#xff0c;主题为“共同打造有韧性的未…

卫星影像如何插入到AutoCAD使用

工具 Bigemap gis office地图软件 BIGEMAP GIS Office-全能版 Bigemap APP_卫星地图APP_高清卫星地图APP 第一步&#xff1a; 首先需要下载影像&#xff0c;选择一个区域下载&#xff0c;影像下载方式有以下几种&#xff1a; 那么通过下载方式选择好了范围以后&#xff0c;选…

【C++】-c++11的知识点(中)--lambda表达式,可变模板参数以及包装类(bind绑定)

&#x1f496;作者&#xff1a;小树苗渴望变成参天大树&#x1f388; &#x1f389;作者宣言&#xff1a;认真写好每一篇博客&#x1f4a4; &#x1f38a;作者gitee:gitee✨ &#x1f49e;作者专栏&#xff1a;C语言,数据结构初阶,Linux,C 动态规划算法&#x1f384; 如 果 你 …

基于Labview的噪声采集分析系

目录 摘 要......................................................................................................................... 3 第一章 绪论.............................................................................................................…

印尼全面禁止直播带货

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 电商的改变要来了? 印尼为了保护中小企业全面禁止电商&#xff0c;原因是&#xff1a;电商富的是少数人&#xff0c;只有实体才能带动经济。另外除了印尼&#xff0c;马来西亚、越南也要审查直播…

html设置前端加载动画

主体思路参考&#xff1a; 前端实现页面加载动画_边城仔的博客-CSDN博客 JS图片显示与隐藏案例_js控制图片显示隐藏-CSDN博客 1、编写load.css /* 显示加载场景 */ .loadBackGround{position: absolute;top: 0px;text-align: center;width: 100%;height: 100vh;background-c…

十六、【橡皮擦工具组】

文章目录 橡皮擦背景橡皮擦1. 一次取样2. 连续取样3. 取样背景色板 魔术橡皮擦 橡皮擦 橡皮擦跟我们平常生活中所用的橡皮擦是一样&#xff0c;它是将图层的内容擦除,只剩下空白部分。另外当我们按住Alt的键去擦除空白部分的时候&#xff0c;也可以将背景的部分显示出来。 另…

第三章 内存管理 二、内存管理的概念

目录 一、内存空间的分配与回收 内存空间的分配: 内存空间的回收&#xff1a; 二、内存空间的扩充 四、存储保护 五、总结 一、内存空间的分配与回收 内存空间的分配和回收是程序设计中非常重要的一环。这里简要介绍下内存空间的分配和回收。 内存空间的分配: 静态分配…

JVM 性能调优参数

JVM分为堆内存和非堆内存 堆的内存分配用-Xms和-Xmx -Xms分配堆最小内存&#xff0c;默认为物理内存的1/64&#xff1b; -Xmx分配最大内存&#xff0c;默认为物理内存的1/4。 非堆内存分配用-XX:PermSize和-XX:MaxPermSize -XX:PermSize分配非堆最小内存&#xff0c;默认为物理…

LeetCode【46】全排列

题目&#xff1a; 代码&#xff1a; 在这里插入代码片

LeetCode刷题总结 - LeetCode 热题 100 - 持续更新

LeetCode 热题 100 其他系列哈希1. 两数之和49. 字母异位词分组128. 最长连续序列 双指针27. 移除元素283. 移动零11. 盛最多水的容器剑指 Offer II 007. 数组中和为 0 的三个数42. 接雨水 滑动窗口438. 找到字符串中所有字母异位词3. 无重复字符的最长子串 字串560. 和为 K 的…

十四、【图章工具组】

文章目录 仿制图章图案图章 仿制图章 纺织图和章工具跟我们之前所用到的修补工具类似,需要我们先按住Alt键选住一块区域&#xff0c;然后调整它的硬度在用我们选择的区域去覆盖&#xff0c;需要注意的是&#xff0c;我们去做的时候尽量一笔覆盖我们想要遮住的区域: 图案图章…