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);
相关推荐
星轨初途2 小时前
LeetCode 热题 100——day10 和为 K 的子数组
开发语言·c++·算法·leetcode
数模竞赛Paid answer2 小时前
2021年深圳杯数学建模C题配电网可靠性和故障软自愈研究解题全过程论文及程序
算法·数学建模·数据分析·深圳杯
有点。2 小时前
C++广度优先搜索(二)-练习题
c++·算法·宽度优先
疯狂打码的少年2 小时前
【数据结构】队列的应用:循环队列
数据结构·笔记·算法
evans在进步3 小时前
LeetCode 17:电话号码的字母组合——Java DFS 回溯法详解
java·leetcode·深度优先
Winner_hwx3 小时前
python拓展
算法
必须会一定会3 小时前
用纯 HTML/JS 做一个 AI 需求澄清器:把模糊想法转换成可执行任务书
开发语言·前端·javascript·人工智能·html·ai编程
TAN-90°-3 小时前
Deep Learning for Computer Vision——Image Classification with Linear Classifiers
python·深度学习·算法·计算机视觉·线性回归
小帅不太帅3 小时前
1.5M 参数的 OCR 模型,我把它跑进了浏览器
前端·javascript·ai编程
阿pin3 小时前
Java随笔-红黑树
java·python·算法·红黑树