【LeetCode-中等题】437. 路径总和 III

news2024/11/24 8:40:28

文章目录

    • 题目
    • 方法一:迭代层序 + 每层节点dfs 维护一个count变量

题目

在这里插入图片描述

方法一:迭代层序 + 每层节点dfs 维护一个count变量

思路:

  1. 层序遍历每一个节点
  2. 遍历一个节点就对这个节点进行dfs
  3. dfs的同时,维护一个count变量,并且把每次路径节点进行累加,然后判断sum==target 如果相等 让count++
  4. 直到当前节点的dfs结束后,再进行下一个节点的dfs
  5. 最后输出count
    在这里插入图片描述
// 方法一 迭代层序 + 每层节点dfs  维护一个count变量
    int count ;
    public int pathSum(TreeNode root, int targetSum) {
    if(root == null) return 0;
    Queue<TreeNode> queue = new LinkedList<>();
    queue.offer(root);
    while(!queue.isEmpty()){
        int size = queue.size();
        for(int i =0 ;i<size;i++){
          TreeNode node = queue.poll();
          checkPathDfs(node,0,targetSum);//对该节点的dfs的同时  累加路径的值同时和target对比,若sum累加值 == target 则count++
          if(node.left != null) queue.offer(node.left);
          if(node.right != null) queue.offer(node.right);
        }  
    }
     return count;
    }
    //dfs:累加路径的值同时和target对比,若sum累加值 == target 则count++
    public void checkPathDfs(TreeNode root, long sum,int targetSum) {//注意  sum要为long  因为测试案例超出了int的范围了  sum值会处在封顶的位置,而不是真实值
      if(root == null) return ;
      sum = sum + root.val;
      if(sum == targetSum) count++;
      checkPathDfs(root.right,sum,targetSum);//对右子树dfs 并且sum继承过来    左右子树的sum归左子树的,右子树的sum归右子树  互不干扰
      checkPathDfs(root.left,sum,targetSum);
    }

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

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

相关文章

vue v-on 艾特@

vue v-on 内联代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</titl…

恢复已删除的git分支

1.打开对应项目文件夹目录,在目录下执行git命令 2.执行命令 git reflog --dateiso , 找到最后一次commit 的id 3. 执行git checkout -b 新建分支名称 commitId 就会基于commitId这次提交时工作区新建一个分支&#xff0c;就能达到我们找到删除分支的代码效果。 4.直接看ide…

静态路由配置实验(超详细讲解+详细命令行)

系列文章目录 华为数通学习&#xff08;7&#xff09; 前言 一&#xff0c;静态路由配置 二&#xff0c;网络地址配置 AR1的配置&#xff1a; AR2的配置&#xff1a; AR3的配置&#xff1a; 三&#xff0c;测试是否连通 AR1的配置: 讲解&#xff1a; AR2的配置&#…

由于启动计算机时出现了页面文件配置问题,Windows在您的计算机创建了一个临时页面文件...

问题来源&#xff1a;D盘存储空间爆满以后&#xff0c;每次开机电脑开始自动弹窗。 提示信息&#xff1a; 可以点击确定&#xff0c;win10直接跳出虚拟内存设置窗口&#xff0c;如下 选择勾选“自动管理所有驱动器的分页文件大小”&#xff0c;点击确定&#xff0c;没有再弹窗。…

Kubernetes(k8s)上安装Prometheus和Grafana监控

Kubernetes上安装Prometheus和Grafana监控 环境准备Kubernetes准备 安装项目开始安装下载安装的项目安装项目替换镜像替换kube-state-metrics替换prometheus-adapter 修改Service修改alertmanager-service.yaml修改grafana-service.yaml修改prometheus-service.yaml 执行这些ya…

1.10 内存ShellCode注入与格式化

ShellCode 的格式化与注入功能在实战应用中也尤为重要&#xff0c;格式化Shellcode是指将其转换为可执行的二进制格式&#xff0c;使其能够在内存中运行。注入Shellcode是指将格式化的Shellcode注入到另一个进程的内存中&#xff0c;以便在该进程中执行&#xff0c;此类功能也可…

【人工智能】—_逻辑Agent、一般逻辑、Entailment_蕴涵、命题逻辑、前向链接、反向链接、Resolution归结

文章目录 逻辑智能体Knowledge bases一个简单的基于知识的智能体 一般逻辑Entailment 蕴涵Models模型蕴涵与推理 命题逻辑逻辑连接词枚举推理有效性可满足性 推导和证明霍恩子句Forward chaining 前向链接Proof of completeness&#xff08;完备性&#xff09; Backward chaini…

ELK安装、部署、调试 (七)kibana的安装与配置

1.介绍 Kibana 是一个基于浏览器的开源可视化工具&#xff0c;主要用于分析大量日志&#xff0c;以折线图、条形图、饼图、热图、区域图、坐标图、仪表、目标、时间等形式。预测或查看输入源的错误或其他重大事件趋势的变化。Kibana 与 Elasticsearch 和 Logstash 同步工作&am…

java环境的安装 以及大学生认证免费激活IDEA

最近博主也是在学校开始学习了Java&#xff0c;也通过老师知道了可以通过大学生学生证申(bai)请(piao) IDEA的企业版&#xff08;社区版也是够学习用的&#xff09;有很多同学还是没有搞懂便做一下分享。 &#x1f331;博客主页&#xff1a;青竹雾色间. &#x1f618;博客制作…

发布的策略

简介 应用程序升级面临最大挑战是新旧业务切换&#xff0c;将软件从测试的最后阶段带到生产环境&#xff0c;同时要保证系统不间断提供服务。 长期以来&#xff0c;业务升级渐渐形成了几个发布策略&#xff1a;蓝绿发布、灰度发布和滚动发布&#xff0c;目的是尽可能避免因发…

java 八股文 基础 每天笔记随机刷

Component 和 PostConstruct 搭配使用 被Component注解标识的类在应用程序启动时会被实例化&#xff0c;并由Spring容器进行管理。PostConstruct是一个Java注解&#xff0c;用于标记一个方法在类被实例化后自动执行。该方法必须是非静态的&#xff0c;没有参数&#xff0c;且不…

android:控件TextView

一、系统学习Android控制键TextView&#xff0c;我的笔记里面有尝试学着使用自定义控件。 二、具体内容 1.如果在代码中给textView赋值&#xff0c;在xml中也给textView赋值了最后运行出来的结果显示代码中赋的值。因此得出结论&#xff0c;代码中的赋值会覆盖xml所附的值。 …

物联网闸道器开发整合嵌入式套件加速物联网创新

物联网闸道器开发整合套件&#xff0c;以可靠的物联网软体平台与开放式闸道器整合技术&#xff0c;协助加速物联网创新。整组套件包括软硬件整合的系统(Intel Celeron J1900平台与Windows 7 Embedded)、物联网软体平台服务(WISE-PaaS)、软体开发套件和技术支援服务以及Microsof…

OpenCV实战(30)——OpenCV与机器学习的碰撞

OpenCV实战&#xff08;30&#xff09;——OpenCV与机器学习的碰撞 0. 前言1. 机器学习简介2. 基于局部二值模式的最近邻人脸识别3. 图像表示与人脸识别4. 完整代码小结系列链接 0. 前言 随着人工智能的发展&#xff0c;许多机器学习算法开始用于解决机器视觉问题。机器学习是…

SoC 总线结构学习记录之系统存储总线(System Memory Bus)与私有设备总线

蜂鸟 E203 SOC总线结构&#xff1a;  蜂鸟 E203 内核 BIU 的系统存储接口 ICB 连接系统存储总线&#xff0c;通过其访问 SoC 中的若干存储组件&#xff0c;譬如 ROM&#xff0c;Flash 的只读区间等。  蜂鸟 E203 内核 BIU 的私有设备接口 ICB 连接私有设备总线&#xff0c…

Java 编程中的魔法之门:探索I/O流的奇妙世界

文章目录 什么是I/O流&#xff1f;I/O 流的层次结构1. 字节流&#xff08;Byte Streams&#xff09;2. 字符流&#xff08;Character Streams&#xff09;3. 缓冲流&#xff08;Buffered Streams&#xff09;4. 数据流&#xff08;Data Streams&#xff09;5. 对象流&#xff0…

STM32 FREERTOS osDelayUntil()异常

问题&#xff1a; 在使用osDelayUntil&#xff08;&#xff09;进行固定延时时发现不起作用&#xff0c;程序不能按照预期的延时进行执行&#xff08;比延时要快&#xff09;。 #define taskMBSysManage_Delay_TIME 1000 TickType_t xLastWakeTime; xLastWakeTime xTaskGe…

软考A计划-网络工程师-复习背熟-广域网和接入网技术和因特网

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 &#x1f449;关于作者 专注于Android/Unity和各种游…

高忆管理:庄家尾盘拉升的目的?

股市里的庄家是指一些出资者和基金司理&#xff0c;他们以高明的技巧和强大的实力操作股市。庄家尾盘拉升则是指在股市收盘前&#xff0c;庄家在商场进行一些操盘操作&#xff0c;然后推高股价。那么庄家尾盘拉升的目的是什么&#xff1f;在本文中&#xff0c;我们将从多个角度…

33、Flink之hive介绍与简单示例

Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…