leetcode 437. Path Sum III | 437. 路径总和 III(DFS,前缀和)
题目
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,前缀和)相关推荐
- LeetCode 371. 两整数之和(异或操作) / 639. 解码方法 II(动态规划)/ 437. 路径总和 III
371. 两整数之和 2021.9.26 每日一题 题目描述 给你两个整数 a 和 b ,不使用 运算符 + 和 - ,计算并返回两整数之和. 示例 1: 输入:a = 1, b = 2 ...
- 【LeetCode】【HOT】437. 路径总和 III(DFS)
[LeetCode][HOT]437. 路径总和 III 文章目录 [LeetCode][HOT]437. 路径总和 III package hot;class TreeNode{int val;Tr ...
- LeetCode 437. 路径总和 III
437. 路径总和 III 思路: 深度优先搜索,暴力搜索: 递归遍历每一个节点的所有可能路径,然后将这些路径书目加起来即为返回结果 首先定义rootSum(p,val)表示以节点p为起点向下且满足路 ...
- Leetcode 437.路径总和III
路径总和III 给定一个二叉树,它的每个结点都存放着一个整数值. 找出路径和等于给定数值的路径总数. 路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点). ...
- leetcode437. 路径总和 III
437. 路径总和 III 难度中等1075 给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目. 路径 不需要从根 ...
- [勇者闯LeetCode] 112. Path Sum
[勇者闯LeetCode] 112. Path Sum Description Given a binary tree and a sum, determine if the tree has a r ...
- 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/ 题解 简单的遍历二叉树,不解 ...
- [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 ...
- LeetCode刷题实战216:组合总和 III
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...
最新文章
- 如何使用NAnt 自动打包DNN模块 之二
- xcode 4.5 new feature __ ios6 新特性
- 读取javascript脚本的正则表达式
- ERP兵法——从案例透视方法(实施篇上)
- 大数据实时计算工程师/Hadoop工程师/数据分析师职业路线图
- “返回指向栈空间的指针”的错误
- STM32与多台MS5803压力传感器I2C通讯
- 于谦加盟高德地图 推出“哪儿都熟”相声导航
- HDU2189 来生一起走【完全背包】
- 4.卷1(套接字联网API)---基本TCP套接字编程
- 深空数据(LRO .etc)处理软件 isis3 + asp 安装流程(基于 ubuntu 18.04)
- matlab 平滑曲线连接_曲线拟合的一些想法
- 结构体数组 初始化(转)
- 【券后价16.80元】【海蓝蓝】夹心海苔脆芝麻海苔即食罐装海苔宝宝辅食儿童零食40克...
- Jetpack Compose 动画开发实践:微博长按点赞彩虹
- Isaac SDK Sim 环境
- 直播相关知识之二 采集、处理、编码和封装
- 中大型网站架构演变之路
- 向苹果提交bug时的糟心经历
- 登山赛车2服务器正在维护什么意思,登山赛车2无法打开怎么办 登山赛车2登录不了解决方案...