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: OptionalTreeNode

: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.prefixcurrent = self.prefix.get(current,0) + 1

dfs(tmp.left,current)

dfs(tmp.right,current)

self.prefixcurrent-= 1

self.prefix={0:1}

dfs(root , 0)

return self.ret

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

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

相关推荐
一去不复返的通信er4 小时前
力扣-图论-岛屿数量
算法·leetcode·图论
程序 代码狂人7 小时前
切片表与分区表的区别(数据开发面试版)
java·大数据·开发语言·数据仓库·算法
HDU-Dade7 小时前
【校招笔试真题】简要介绍 Self-Attention 的前沿算法
人工智能·算法
小郎君65810 小时前
Vue keep-alive 切标签后滚动位置回顶?因为 onDeactivated 里读到的 scrollTop 是 0
算法
邵奈一10 小时前
GPT-6.1 Terra速度是Sol的3倍,价格减半
算法
RaaS10010 小时前
Node.js Brotli RCE 漏洞自查指南:fetch、undici、axios 都在影响面,三分钟确认你的版本
人工智能·深度学习·算法
shehuiyuelaiyuehao10 小时前
算法56,重排链表
数据结构·算法·链表
qq_4523962311 小时前
第四篇:《索引原理与实战:B-tree、Hash、GIN、GiST、BRIN》
算法·哈希算法·gin
西索斯coding11 小时前
Qwen3-Max 与 Qwen-Plus:60 个真实修复任务评测方案
大数据·网络·算法·ai