力扣437. 路径总和 III

Problem: 437. 路径总和 III

文章目录

  • 题目描述
  • 思路
  • 复杂度
  • Code

题目描述

在这里插入图片描述在这里插入图片描述

思路

1.定义int类型函数rootSum(root, targetSum),用于求取每一个节点等于目标函数的路径数:

1.1.易知rootSum(root, targetSum)求出的数量等于rootSum(root.left, targetSum - value)求出的数量加上rootSum(root.right, targetSum - value)求出的数量,其中value是当前遍历到的节点的节点值
1.2.若当前的value值等于targetSum,则所求的路径总和加一;

2.在pathSum函数中实现对每一个节点调用rootSum函数得出最终的路劲总和数

复杂度

时间复杂度:

O ( n 2 ) O(n^2) O(n2);其中 n n n为二叉树节点的个数

空间复杂度:

O ( n ) O(n) O(n)

Code

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {/*** Path Sum III** @param root      The root of binary tree* @param targetSum The target number* @return int*/public int pathSum(TreeNode root, long targetSum) {if (root == null) {return 0;}int res = rootSum(root, targetSum);res += pathSum(root.left, targetSum);res += pathSum(root.right, targetSum);return res;}/*** Find the sum of the target paths of each node** @param root      The root of binary tree* @param targetSum The target number* @return int*/public int rootSum(TreeNode root, long targetSum) {int res = 0;if (root == null) {return 0;}int value = root.val;if (value == targetSum) {res++;}res += rootSum(root.left, targetSum - value);res += rootSum(root.right, targetSum - value);return res;}
}

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024.5.6 关于 SpringCloud 的基本认知

目录 引言 微服务框架所包含的技术栈 微服务架构演变 单体架构 分布式架构 微服务架构 微服务技术对比 认识 SpringCloud SpringBoot 版本兼容关系 服务拆分和远程调用 服务拆分注意事项 远程调用 引言 微服务是一种框架风格,按照业务板块来划分应用代码…

Android版本依赖Version catalog

曾经我们使用config.gradle文件进行版本依赖配置,然后在project的build.gradle.kts中使用如下方式引入: apply(from "./config.gradle") 缺点:在project的module中引用无任何提示,无法跳转到指定引用 一、创建versio…

如何全面规避医疗数据安全风险?“一中心三大管控域”打开新思路!

作为医院的核心基础设施,数据库已然演变成了一种具有“资产”属性的重要元素。而随着不断变化的医疗业务场景和日趋严格的合规性要求,如何让安全全方位贯穿医疗数据的生命周期,是一项系统性的建设工作,难点诸多。 基于多年的数据…

js 图片渐变

1. 点击图片,使其渐变为另一张图片 通过定义keyframes来创建一个淡入淡出的动画效果。当图片被点击时,先添加淡出动画使图片透明度从0渐变到1,然后在1秒后切换图片源并添加淡入动画使新图片透明度从0渐变到1,实现图片渐变效果。 …

交易复盘-20240507

仅用于记录当天的市场情况,用于统计交易策略的适用情况,以便程序回测 短线核心:不参与任何级别的调整,采用龙空龙模式 一支股票 10%的时候可以操作, 90%的时间适合空仓等待 蔚蓝生物 (5)|[9:25]|[36187万]|4.86 百合花…

深入理解nginx http响应限速功能

目录 1. 引言2. 配置参数2.1 limit_rate 配置指令2.2 limit_rate_after 配置指令2.3 其他限速配置 3. 源码分析 1. 引言 在现代互联网应用中,服务器的性能和响应速度是至关重要的。为了保证服务器的稳定性和可靠性,限制客户端对服务器的访问速度是一项重…

嵌入式linux学习第三天汇编语言点灯

嵌入式linux学习第三天汇编语言点灯 今天学习如何在linux板子上点灯。 I.MX6U GPIO 详解 我们发现I.MX6U GPIO是分为两类的,:SNVS 域的和通用的。在讨论i.MX6U或类似的复杂微处理器时,了解其GPIO(通用输入输出)引脚…

docker jenkins 部署springboot项目

1、创建jenkins容器 1,首先,我们需要创建一个 Jenkins 数据卷,用于存储 Jenkins 的配置信息。可以通过以下命令创建一个数据卷: docker volume create jenkins_data启动 Jenkins 容器并挂载数据卷: docker run -dit…

笔记本连接不上远程桌面,笔记本无法连接远程桌面的可能原因及解决方法

在使用远程桌面功能时,笔记本无法成功连接的情况可能由多种原因引起。为了有效地解决这个问题,我们需要逐一排查这些可能的原因,并采取相应的解决措施。 首先,网络连接稳定性是远程桌面连接成功的关键。请确保笔记本和远程计算机之…

【Linux】Docker 安装部署 Nacos

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ 【Linux】Docker 安装部署 Nacos docker搜索na…

跟TED演讲学英文:4 pillars of college success in science by Freeman Hrabowski

4 pillars of college success in science Link: https://www.ted.com/talks/freeman_hrabowski_4_pillars_of_college_success_in_science Speaker: Freeman Hrabowski Date: February 2013 文章目录 4 pillars of college success in scienceIntroductionVocabularyTranscr…

IP规划案例

整个OSPF环境IP基于172.16.0.0/16划分 172.16.0.0/16 先分成2个网段(OSPF RIP),借1位172.16.0.0/17 ---OSPF 再按区域划分(5个区域),借3位 172.16.0.0/20 ---Area 0 三个环回 MGRE 4个网…