leetcode hot100 路径总和

437. 路径总和 III

已解答

中等

相关标签

相关企业

给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum路径 的数目。

路径 不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)

Definition for a binary tree node.

class TreeNode(object):

def init(self, val=0, left=None, right=None):

self.val = val

self.left = left

self.right = right

class Solution(object):

def pathSum(self, root, targetSum):

"""

:type root: Optional[TreeNode]

:type targetSum: int

:rtype: int

"""

self.targetSum = targetSum

self.ret = 0

def dfs(tmp,current):

if tmp==None:

return

current += tmp.val

self.ret += self.prefix.get(current - self.targetSum ,0)

self.prefix[current] = self.prefix.get(current,0) + 1

dfs(tmp.left,current)

dfs(tmp.right,current)

self.prefix[current]-= 1

self.prefix={0:1}

dfs(root , 0)

return self.ret

这里我们需要的是一个非常牛逼的方法,也就是使用深度优先搜索,记录一个前缀和,然后在每次搜索的时候,之保留搜索这条路上的前缀和,这样子计算路径的时候只要把当前的路径前去任意一个前缀和的结果和target对上就行。

笨方法是直接遍历,深度搜索两次

相关推荐
TracyCoder12320 小时前
LeetCode Hot100(4/100)——283. 移动零
算法·leetcode
啊阿狸不会拉杆20 小时前
《计算机操作系统》第七章 - 文件管理
开发语言·c++·算法·计算机组成原理·os·计算机操作系统
黎阳之光20 小时前
打破视域孤岛,智追目标全程 —— 公安视频追踪技术革新来袭
人工智能·算法·安全·视频孪生·黎阳之光
jiaguangqingpanda21 小时前
Day28-20260124
java·数据结构·算法
TracyCoder12321 小时前
LeetCode Hot100(2/100)——49. 字母异位词分组 (Group Anagrams)。
算法·leetcode
lixinnnn.21 小时前
字符串拼接:Cities and States S
开发语言·c++·算法
AI街潜水的八角21 小时前
医学图像算法之基于MK_UNet的肾小球分割系统3:含训练测试代码、数据集和GUI交互界面
算法
larance21 小时前
方差和标准差
人工智能·算法·机器学习
TracyCoder12321 小时前
LeetCode Hot100(3/100)——128.最长连续序列
算法·leetcode
Piar1231sdafa21 小时前
【目标检测】竹林与杂草识别_YOLOv26改进算法研究
算法·yolo·目标检测