news 2026/4/21 10:20:07

力扣(python3自用)2026.4.20

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
力扣(python3自用)2026.4.20

最近没有刷力扣,罪过,主要是跑实验太累了,今天做了一道题

437.路径总和iii

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

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

示例 1:

输入:root = [10,5,-3,3,2,null,11,3,-2,null,1], targetSum = 8输出:3解释:和等于 8 的路径有 3 条,如图所示。

示例 2:

输入:root = [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum = 22输出:3

思路:双dfs,外面那个负责看每个节点,每个节点的左子树,右子树上的路径数量之和,也就是当前节点的路径数量。里面dfs负责看路径上是否满足targetSum,主要是根据减法来做。每个dfs中重置一下count,表示当前节点的路径数量。

# Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution: def pathSum(self, root: Optional[TreeNode], targetSum: int) -> int: if not root: return 0 root_cnt = self.slove_path(root,targetSum) left_cnt = self.pathSum(root.left,targetSum) right_cnt = self.pathSum(root.right,targetSum) return root_cnt + left_cnt + right_cnt def slove_path(self,node,targetSum): if not node: return 0 count = 0 if targetSum == node.val: count += 1 remain = targetSum - node.val left_count = self.slove_path(node.left,remain) right_count = self.slove_path(node.right,remain) return count + left_count + right_count
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/21 10:11:40

20260420软件测试

告别手写用例?2026年这7款AI测试工具让测试工程师彻底解放 📅 2026年4月20日 | 软件测试资讯 说一个测试圈里反复出现的场景: 需求文档发下来,测试同学对着密密麻麻的文字,一条一条整理测试点,再逐个写用例…

作者头像 李华
网站建设 2026/4/21 10:10:59

从实验室到田间:FDR土壤水分传感器选型、部署与数据解读避坑指南

从实验室到田间:FDR土壤水分传感器选型、部署与数据解读避坑指南 清晨六点,当第一缕阳光穿透大棚薄膜时,山东寿光的番茄种植户老王发现自动灌溉系统又误启动了——这已经是本周第三次。他蹲下身拨开表层土壤,指尖传来的干燥触感与…

作者头像 李华
网站建设 2026/4/21 10:10:37

Multi-Agent任务分解框架:从用户意图到子任务的自动化拆解

Multi-Agent任务分解框架:从用户意图到子任务的自动化拆解 副标题:理论架构、经典算法、工程实现与未来趋势全景解析 第一部分:引言与基础 (Introduction & Foundation) 1.1 引人注目的标题与副标题回顾 主标题清晰定义了核心领域&…

作者头像 李华