当前位置: 首页 > wzjs >正文

网站怎么做市场分析什么是网络营销产生的现实基础

网站怎么做市场分析,什么是网络营销产生的现实基础,河南网站建设公司哪家好,宠物网站建设理念LeetCode 热题 100 | 437. 路径总和 III 大家好,今天我们来解决一道经典的二叉树问题——路径总和 III。这道题在 LeetCode 上被标记为中等难度,要求计算二叉树中节点值之和等于给定目标值 targetSum 的路径数目。 问题描述 给定一个二叉树的根节点 ro…

LeetCode 热题 100 | 437. 路径总和 III

大家好,今天我们来解决一道经典的二叉树问题——路径总和 III。这道题在 LeetCode 上被标记为中等难度,要求计算二叉树中节点值之和等于给定目标值 targetSum 的路径数目。


问题描述

给定一个二叉树的根节点 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

提示:

  • 二叉树的节点个数的范围是 [0, 1000]
  • -10^9 <= Node.val <= 10^9
  • -1000 <= targetSum <= 1000

解题思路

核心思想
  1. 前缀和

    • 使用前缀和的思想,记录从根节点到当前节点的路径和。
    • 使用一个哈希表 prefix_sum_count 来记录前缀和出现的次数。
  2. 递归遍历

    • 递归遍历二叉树,对于每个节点,计算从根节点到当前节点的路径和。
    • 检查是否存在一个前缀和,使得当前路径和减去目标值 targetSum 等于该前缀和,如果存在,则路径数目加一。
  3. 更新前缀和

    • 在递归过程中,更新前缀和的计数。
    • 递归返回时,恢复前缀和的计数,确保不影响其他路径的计算。

Python代码实现

class Solution:def pathSum(self, root: TreeNode, targetSum: int) -> int:from collections import defaultdictdef dfs(node, current_sum):nonlocal countif not node:returncurrent_sum += node.valif current_sum - targetSum in prefix_sum_count:count += prefix_sum_count[current_sum - targetSum]prefix_sum_count[current_sum] += 1dfs(node.left, current_sum)dfs(node.right, current_sum)prefix_sum_count[current_sum] -= 1prefix_sum_count = defaultdict(int)prefix_sum_count[0] = 1count = 0dfs(root, 0)return count

代码解析

  1. 初始化

    • 使用 defaultdict 初始化前缀和计数器 prefix_sum_count,并设置初始值 prefix_sum_count[0] = 1
    • 初始化路径数目 count 为 0。
  2. 递归函数

    • 定义递归函数 dfs,用于遍历二叉树并计算路径和。
    • 对于每个节点,更新当前路径和 current_sum
    • 检查是否存在一个前缀和,使得当前路径和减去目标值 targetSum 等于该前缀和,如果存在,则路径数目加一。
    • 更新前缀和的计数。
    • 递归调用 dfs,分别处理左子树和右子树。
    • 递归返回时,恢复前缀和的计数。
  3. 主函数

    • 调用 dfs(root, 0),从根节点开始遍历。
    • 返回路径数目 count

复杂度分析

  • 时间复杂度:O(n),其中 n 是二叉树的节点数。每个节点被访问一次。
  • 空间复杂度:O(n),哈希表 prefix_sum_count 的大小最多为 n,递归调用栈的深度最多为树的高度。

示例运行

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

总结

通过前缀和的思想,我们可以高效地计算二叉树中节点值之和等于目标值的路径数目。递归遍历二叉树,使用哈希表记录前缀和的出现次数,从而快速判断是否存在满足条件的路径。希望这篇题解对大家有所帮助,如果有任何问题,欢迎在评论区留言讨论!

关注我,获取更多算法题解和编程技巧!


文章转载自:

http://00000000.pshcd.cn
http://00000000.pshcd.cn
http://00000000.pshcd.cn
http://00000000.pshcd.cn
http://00000000.pshcd.cn
http://00000000.pshcd.cn
http://00000000.pshcd.cn
http://00000000.pshcd.cn
http://00000000.pshcd.cn
http://00000000.pshcd.cn
http://00000000.pshcd.cn
http://00000000.pshcd.cn
http://00000000.pshcd.cn
http://00000000.pshcd.cn
http://00000000.pshcd.cn
http://00000000.pshcd.cn
http://00000000.pshcd.cn
http://00000000.pshcd.cn
http://00000000.pshcd.cn
http://00000000.pshcd.cn
http://00000000.pshcd.cn
http://00000000.pshcd.cn
http://00000000.pshcd.cn
http://00000000.pshcd.cn
http://00000000.pshcd.cn
http://00000000.pshcd.cn
http://00000000.pshcd.cn
http://00000000.pshcd.cn
http://00000000.pshcd.cn
http://00000000.pshcd.cn
http://www.dtcms.com/wzjs/610720.html

相关文章:

  • 航空网站建设未满18岁能申请网站备案吗
  • 医生可以自己做网站吗深圳罗湖企业网站建设
  • 茌平建设局网站网页设计作业成品免费百度云
  • 天津公司网站设计模块建站平台
  • 图片展示网站织梦源码上海室内设计公司排名前十强
  • 个人网站建设论文绪论网站设置301重定向
  • 网站建设市场多大鲜花网站建设解决方案
  • SaaS网站可以做seo嘛wordpress转html
  • 品牌网站设计工作室佘山做网站公司
  • 竞价网站做不做链接网站设计建设公司联系方式
  • 自己做的网站怎么弄到网上青岛网站建设seo优化制作设计
  • 搜索网站做淘宝客wordpress 支付宝免签
  • 新县住房和城乡规划建设网站济南电商网站开发
  • 360网站制作网站首页的布局设计
  • 手机网站 代码怎么把网站做火
  • 工厂的网站在哪里做的吉林seo推广系统
  • 网站备案能查到什么网站开发费用是研发费用
  • 只做动漫的h网站wordpress页面怎么编辑
  • 山东网站建设公司哪家权威有一台服务器怎么赚钱
  • 福建建设职业管理中心网站wordpress 502错误解决
  • 重庆网站制作福州微小店适合卖做分类网站吗
  • 网站开发接单群大连建设监察执法网站
  • 焦作电子商务网站建设实例著名网页设计师及作品
  • 淮安市建设局网站首页深圳网络推广代理
  • 黄冈市建设局官方网站小说网站快速做排名
  • 做网站多少钱西宁君博美评wordpress 作品集网站
  • 湖南省网站建设项目网站是先解析后备案
  • 响应式网站建设品牌全网天下wordpress下载5.11
  • 简单炫酷的网站php+ajax网站开发典型实例 pdf
  • 网站建设可以帮助花店怎么样网站建设模板ppt模板