437 路径总和-02
437 路径总和-02
前缀和,dfs,回溯
/*** 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 {int count=0;Map<TreeNode,Integer> map=new HashMap<>();public int pathSum(TreeNode root, int targetSum) {dfs(root,targetSum,0);return count;}public void dfs(TreeNode root,int targetSum,int currSum){if (root==null){return;}currSum+=root.val;for (Map.Entry<TreeNode,Integer> entry:map.entrySet()){if (currSum-entry.getValue()==targetSum){count++;}}if(currSum==targetSum){count++;}map.put(root,currSum);dfs(root.left,targetSum,currSum);dfs(root.right,targetSum,currSum);map.remove(root);}}
时间复杂度O(n)O(n)O(n),nnn是二叉树的节点个数。
空间复杂度O(h)O(h)O(h),hhh是二叉树的深度,使用哈希表。
437 路径总和-02相关推荐
- 【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 371. 两整数之和(异或操作) / 639. 解码方法 II(动态规划)/ 437. 路径总和 III
371. 两整数之和 2021.9.26 每日一题 题目描述 给你两个整数 a 和 b ,不使用 运算符 + 和 - ,计算并返回两整数之和. 示例 1: 输入:a = 1, b = 2 ...
- Leetcode 437.路径总和III
路径总和III 给定一个二叉树,它的每个结点都存放着一个整数值. 找出路径和等于给定数值的路径总数. 路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点). ...
- 437. 路径总和 III
给定一个二叉树,它的每个结点都存放着一个整数值. 找出路径和等于给定数值的路径总数. 路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点). 二叉树不超过1 ...
- LeetCode 437. 路径总和 III(双重递归)
1. 题目 给定一个二叉树,它的每个结点都存放着一个整数值. 找出路径和等于给定数值的路径总数. 路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点). 二 ...
- 【LeetCode笔记】437. 路径总和III(Java、双重递归、二叉树)
文章目录 题目描述 思路 & 代码 题目描述 说实话确实比I & II要恶心一点 这里直接用双递归秒了(今天才发现我是之前先写的III,再写的I & II) 有前缀和的写法,但 ...
- leetcode - 437. 路径总和 III
给定一个二叉树,它的每个结点都存放着一个整数值. 找出路径和等于给定数值的路径总数. 路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点). 二叉树不超过1 ...
- leetcode 437. Path Sum III | 437. 路径总和 III(DFS,前缀和)
题目 https://leetcode.com/problems/path-sum-iii/ 题解 DFS+前缀和问题,注意节点可能为 0 的情况(也是因此发现应该用 HashMap 记录前缀和的个数 ...
- LeetCode(合集) 路径总和(二叉树) golang copy的值复制
112. 路径总和 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和. 说明: 叶子节点是指没有子节点的节点. 示例: 给定如下二叉树,以及目标 ...
最新文章
- jQuery 选择器中的空格问题
- linux jenkins远程脚本,在Jenkins中配置执行远程shell命令(转)
- 对于新手来说,Python 中有哪些难以理解的概念?我似乎明白了
- 【工业控制】激光跟踪仪概述
- C++-运行时类型信息,异常(day11)
- ObjecT4:On-line multiple instance learning (MIL)学习
- 利用福禄克DSX系列测试仪部署MPTL模块化插头端接链路
- python实现程序重启_python实现自动重启本程序的方法
- 创新品牌体验团队_如何推动软件团队创新
- 3 矩阵运算_小白学PyTorch——pytorch常见运算详解
- linux getopt源码,linux getopt()
- 开始学习 PixiJS
- 我为什么想并且要学习Scala
- table中强制不换行
- VR与平板电脑高速PCB设计实战攻略
- 计算机车辆识别检测毕业设计,车辆识别论文,关于基于计算机网络技术的车辆识别技术相关参考文献资料-免费论文范文...
- 手机app测试方法(二)App测试-常见测试点
- 中专计算机专业包括哪些方面,中专计算机有什么专业?
- ASCII码与16进制的互相转换(表)
- 计算机硬盘计入哪个会计科目,电脑加装固态硬盘如何做分录
热门文章
- 鸿蒙时代实力排名,混沌氏(浑沌)、鸿蒙氏,盘古开天辟地时两个最强大的部落首领?...
- 新型远程下载功能路由器NW762简介
- 面试案例-String Interpolation的实现(Java实现)
- antd 自定义表单验证 onBlur
- SQL进阶篇之多表联查
- 阿里巴巴Java开发手册终极版v1.3.0(百度网盘资源)
- JavaScript/js 转 Python 代码转换神器 jiphy
- 计算机与信息技术基础读书笔记,信息技术读书笔记3篇
- 贡献度分析--帕累托图
- Vue中@click.stop与@click.prevent