【Hot100】LeetCode—124. 二叉树中的最大路径和

news2024/9/21 20:43:38

1- 思路

  • 使用递归 dfs 实现
  • ① 递归思路:每次递归返回值为 , root.val+Math.max(left,right) 从 左右孩子中挑选一个大的。
  • ② 递归公式:定义 sum,sum = root.val + left + right

2- 实现

⭐124. 二叉树中的最大路径和——题解思路

在这里插入图片描述

class Solution {
    int maxSum = Integer.MIN_VALUE;
    public int maxPathSum(TreeNode root) {
        // 递归
        dfs(root);
        return maxSum;
    }


    public int dfs(TreeNode root){
        // 1. 终止条件
        if(root==null){
            return 0;
        }

        // 2. 递归公式,递归逻辑
        int left = dfs(root.left);
        int right = dfs(root.right);
        int sum = root.val + left + right;

        maxSum = Math.max(sum,maxSum);

        // 3. 每次返回值
        int output = root.val + Math.max(left,right);
        if(output>0) return output;
        return 0;
    }
}

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

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

相关文章

如何使用调查问卷获得需求

通过调查问卷进行需求调研是个效率非常高的方法,也是需求调研常用的方法。对于调研者,不必跑到工作现场,不必跟一个又一个用户一遍又一遍地沟通,只要编写调查问卷,让甲方对接人安排人回答,然后分析答卷就可…

基于区块链的合同存证应用开发

基于区块链的合同存证应用开发 任务一:环境准备 1.启动区块链网络 目录: /root/xuperchain/output/ 启动区块链网络 bash constrol.sh start2.创建钱包账户 目录: /root/xuperchain/output/ 创建tenant, landlord钱包账户,命令如下: bin/xchain-cli account newke…

基于 SpringBoot 的 会员制医疗预约服务管理信息系统

开发技术 JavaMySQLSpringBoot 系统分析 需求分析 会员制医疗预约服务管理信息系统的作用,可以提高会员制医疗预约服务管理的工作人员的效率,协助他们对会员制医疗预约服务信息进行统一管理,为管理者提供信息储存和查询搜索系统。一个良好…

【LVS】部署DR模式集群

一、配置实验环境 每台主机的防火墙和SELinux都要关掉 systemctl stop firewalld setenforce 0 1、client(eth0为nat模式) 配置好网卡IP和网关IP,然后重启网卡 nmcli connection reload nmcli connection up eth0 [rootclient ~]# cat /etc/NetworkManager/syst…

AI赋能周界安防:智能视频分析技术构建无懈可击的安全防线

周界安全防范是保护机场、电站、油库、监狱、工业园区等关键设施免受非法入侵和破坏的重要措施。传统的周界安防手段主要依靠人员巡查和物理屏障,但这种方式不仅人力成本高,而且效率较低,难以满足日益复杂多变的安全需求。随着AI技术的引入&a…

3 个关键让你的 Matplotlib 图表高效发布

文章缩略图(作者提供的图片) 数据可视化比查看原始数字数据提供了更深刻的见解。 然而,创建吸引人的图表需要时间和精力。Matplotlib 是 Python 中数据可视化的事实标准库。它很简单,已经使用了几十年,而且你正在寻找…

数字IC验证基础知识

1. 形式验证 利用数学分析的方式,对设计的状态空间进行穷举分析的验证,数据静态验证,不需要灌注激励,对设计进行检查; 参考: Formal Verification (一) 形式验证的分类、发展、适用场景

在 Django 表单中传递自定义表单值到视图

在Django中,我们可以通过表单的初始化参数initial来传递自定义的初始值给表单字段。如果我们想要在视图中设置表单的初始值,可以在视图中创建表单的实例时,传递一个字典给initial参数。 1、问题背景 我们遇到了这样一个问题:在使…

安卓默认混淆规则文件的区别

在 Android 项目中,ProGuard 是一个优化和混淆代码的工具。proguard-android-optimize.txt 和 proguard-android.txt 是两个用于配置 ProGuard 的默认规则文件,如图下 它们有以下区别: proguard-android-optimize.txt: 优化:这个配…

基于Hadoop的北京市二手房价数据分析与可视化

文章目录 有需要本项目的代码或文档以及全部资源,或者部署调试可以私信博主项目介绍总结每文 有需要本项目的代码或文档以及全部资源,或者部署调试可以私信博主 项目介绍 随着中国经济的快速发展和城市化进程的加速,房地产市场已成为国民经…

基于Java中的SSM框架实现在线网上书店系统项目【项目源码+论文说明】

基于Java中的SSM框架实现在线网上书店系统演示 摘要 本文介绍了利用JSP技术实现动态网上书店的发展概况、技术特点、应用原理和方法,充分突出了JSP技术的优越性。 本文简要论述了电子商务的优势、对社会的影响以及建立电子商务网站应注意的问题,并介绍了…

喜报|热烈祝贺超维WO—100室外轮式巡检机器人取得中国电力科学研究院产品检测合格证书

近日,超维WO—100室外轮式巡检机器人顺利通过中国电力科学研究院(武汉高压研究所)的资料审查、测试、及综合评估,并取得产品检测合格证书! 中国电力科学研究院是中国最权威的实验室认可机构,其认证结果得到…

代码随想录——判断子序列(Leetcode 392)

题目链接 双指针 思路: 初始化两个指针 i 和 j,分别指向 s 和 t 的初始位置。每次贪心地匹配,匹配成功则 i 和 j 同时右移,匹配 s 的下一个位置,匹配失败则 j 右移,i 不变,尝试用 t 的下一个字…

《Techporters架构搭建》-Day04 基础架构

功能权限代码 从代码分层开始分层设计是什么?有什么好处?分层设计带来的好处项目分层的目的阿里分层建议DDD分层 代码编写实体类Mapper层结构设计 Service层结构设计 Controller层结构设计 规范及设计遵循Restful API遵循领域模型规约对象拷贝统一接口返…

H20 GPU算力评估分析

H20算力秘密: GPU算力评估 一、从H20谈起 NVIDIA国内热销H20显卡,TFLOPS达标,却声称能媲美A800/A100,究竟凭何底气?揭秘其背后的性能奥秘。 看下表: H20的FP16 TFLOPS为148,虽不及A800的312,但…

Pandas DataFrame 多条件索引

问题背景 在数据分析和处理中,经常需要根据特定条件过滤数据,以提取感兴趣的信息。Pandas DataFrame 提供了多种灵活的方式来索引数据,其中一种是使用多条件索引,它允许使用逻辑条件组合来选择满足所有条件的行。 解决方案 可以…

Web开发-CSS篇-上

CSS的发展历史 CSS(层叠样式表)最初由万维网联盟(W3C)于1996年发布。CSS1是最早的版本,它为网页设计提供了基本的样式功能,如字体、颜色和间距。随着互联网的发展,CSS也不断演进: C…

AI人工智能 强化学习

AI人工智能 强化学习基础 强化学习基础 这种类型的学习被用来加强或加强基于评论者信息的网络。 也就是说,在强化学习下训练的网络从环境中获得一些反馈。 但是,反馈是评价性的,并且不像监督式学习的情况那样具有启发性。 基于这种反馈&…

Python自动化水印处理:让你的图像版权保护更高效

在这个数字化时代,图像和照片已成为我们日常生活和工作中的重要组成部分。然而,随着互联网的普及,版权保护变得越来越具有挑战性。 在这个数字化时代,图像和照片已成为我们日常生活和工作中的重要组成部分。然而,随着…

在线音频剪辑免费工具哪个好用?推荐这6款新手必备的工具

在这个声音无处不在的时代,音频剪辑不仅是专业音乐人的专利,更是每个新媒体运营者不可或缺的利器。 无论是制作引人入胜的短视频背景音乐,还是编辑动人心弦的播客内容,一款强大的音频剪辑工具都能让你的作品如虎添翼。 今天&…