题目

https://leetcode.com/problems/path-sum-iii/

题解

DFS+前缀和问题,注意节点可能为 0 的情况(也是因此发现应该用 HashMap 记录前缀和的个数而不是用 HashSet 仅记录前缀和的数值)。

/*** 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 {public int pathSum(TreeNode root, int targetSum) {int count = 0;Map<Integer, Integer> map = new HashMap<>();map.put(0, 1);return dfs(root, 0, targetSum, map, count);}public int dfs(TreeNode node, int sum, int target, Map<Integer, Integer> map, int count) {if (node == null) return count;sum += node.val;if (map.containsKey(sum - target)) {count += map.get(sum - target);}if (!map.containsKey(sum)) {map.put(sum, 0);}map.put(sum, map.get(sum) + 1);count = dfs(node.left, sum, target, map, count);count = dfs(node.right, sum, target, map, count);map.put(sum, map.get(sum) - 1);return count;}
}

leetcode 437. Path Sum III | 437. 路径总和 III(DFS,前缀和)相关推荐

  1. LeetCode 371. 两整数之和(异或操作) / 639. 解码方法 II(动态规划)/ 437. 路径总和 III

    371. 两整数之和 2021.9.26 每日一题 题目描述 给你两个整数 a 和 b ,不使用 运算符 + 和 - ​​​​​​​,计算并返回两整数之和. 示例 1: 输入:a = 1, b = 2 ...

  2. 【LeetCode】【HOT】437. 路径总和 III(DFS)

    [LeetCode][HOT]437. 路径总和 III 文章目录 [LeetCode][HOT]437. 路径总和 III package hot;class TreeNode{int val;Tr ...

  3. LeetCode 437. 路径总和 III

    437. 路径总和 III 思路: 深度优先搜索,暴力搜索: 递归遍历每一个节点的所有可能路径,然后将这些路径书目加起来即为返回结果 首先定义rootSum(p,val)表示以节点p为起点向下且满足路 ...

  4. Leetcode 437.路径总和III

    路径总和III 给定一个二叉树,它的每个结点都存放着一个整数值. 找出路径和等于给定数值的路径总数. 路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点). ...

  5. leetcode437. 路径总和 III

    437. 路径总和 III 难度中等1075 给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目. 路径 不需要从根 ...

  6. [勇者闯LeetCode] 112. Path Sum

    [勇者闯LeetCode] 112. Path Sum Description Given a binary tree and a sum, determine if the tree has a r ...

  7. leetcode 112. Path Sum, 113. Path Sum II | 112,113. 路径总和 I, II(Java)

    题目 https://leetcode.com/problems/path-sum/ https://leetcode.com/problems/path-sum-ii/ 题解 简单的遍历二叉树,不解 ...

  8. [LeetCode]113.Path Sum II

    [题目] Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the giv ...

  9. ​LeetCode刷题实战216:组合总和 III

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

最新文章

  1. 如何使用NAnt 自动打包DNN模块 之二
  2. xcode 4.5 new feature __ ios6 新特性
  3. 读取javascript脚本的正则表达式
  4. ERP兵法——从案例透视方法(实施篇上)
  5. 大数据实时计算工程师/Hadoop工程师/数据分析师职业路线图
  6. “返回指向栈空间的指针”的错误
  7. STM32与多台MS5803压力传感器I2C通讯
  8. 于谦加盟高德地图 推出“哪儿都熟”相声导航
  9. HDU2189 来生一起走【完全背包】
  10. 4.卷1(套接字联网API)---基本TCP套接字编程
  11. 深空数据(LRO .etc)处理软件 isis3 + asp 安装流程(基于 ubuntu 18.04)
  12. matlab 平滑曲线连接_曲线拟合的一些想法
  13. 结构体数组 初始化(转)
  14. 【券后价16.80元】【海蓝蓝】夹心海苔脆芝麻海苔即食罐装海苔宝宝辅食儿童零食40克...
  15. Jetpack Compose 动画开发实践:微博长按点赞彩虹
  16. Isaac SDK Sim 环境
  17. 直播相关知识之二 采集、处理、编码和封装
  18. 中大型网站架构演变之路
  19. 向苹果提交bug时的糟心经历
  20. 登山赛车2服务器正在维护什么意思,登山赛车2无法打开怎么办 登山赛车2登录不了解决方案...

热门文章

  1. CodeForces - 1220E Tourism(边双缩点+树形dp)
  2. c语言抓取机器硬件阐述,c语言如何控制硬件
  3. FaceBook机器学习开源DL模块
  4. HDU4611(找循环节)
  5. 高性能服务器开发-iocp
  6. 字符串匹配--Sunday算法
  7. 圣诞前夜预告|深入理解Linux内核经验分享
  8. 慌了,居然被问到怎么做高并发系统的限流
  9. 推荐 | 8 个 SpringBoot 精选项目
  10. 美团/力扣(647)--回文字串