Leetcode 437. 路径总和 III (Day 16)JavaScript

javascript 复制代码
var pathSum = function(root, targetSum) {
    let count=0,sum=0;
    const idx=new Map();
    function dfs(root){
        if(!root) return;
        idx.set(sum,(idx.get(sum)??0)+1);
        sum+=root.val;
        const j=sum-targetSum;
        count+=idx.get(j)??0;
        dfs(root.left);
        dfs(root.right);
        sum -= root.val;
        idx.set(sum, idx.get(sum) - 1);
        
    }
    dfs(root);
    return count;
};

算法核心同题560 前缀和+哈希表
注意:要回溯! 如果不回溯左子树会污染右子树,同时回溯时要与添加时对称

javascript 复制代码
idx.set(sum,(idx.get(sum)??0)+1);
sum+=root.val;
//对称
sum -= root.val;
idx.set(sum, idx.get(sum) - 1);
相关推荐
luj_17683 小时前
毒素驱动的生物自毁机制探析
服务器·c语言·开发语言·经验分享·算法
一水鉴天4 小时前
问题分类的三元组映射体系与求解方法论 20260901(千问)
人工智能·算法·机器学习
breeze jiang4 小时前
LangChain Memory 实战:用 InMemoryChatMessageHistory 管理多轮对话
前端·算法·langchain
zzzzzz3105 小时前
react-bits:酷炫动效之外,React 组件库还能提供什么
javascript·react.js·动效
web打印社区12 小时前
网页静默打印热敏小票:从 HTML 到出纸的完整指南
前端·javascript·vue.js·electron·pdf·html
地平线开发者19 小时前
【模型轻量化专题】衡量模型轻量性的指标
算法
专业抄代码选手19 小时前
08|Fiber 上的 `useState`:状态终于属于具体组件
前端·javascript·react.js
默_笙19 小时前
😭 Vibe Coding 翻车实录:AI 编程为什么必须先写"剧本"
前端·javascript
lerhxx20 小时前
我用 R3F 手搓了一个能走进去的 3D 迷宫简历(上):从选型架构到迷宫生成算法
前端·javascript·three.js