【LeetCode热题100(47/100)】路径总和 III

题目地址: 链接

思路: 通过前缀和 + 回溯,每次记录当前前缀和,每次记录当前离 targetSum 的偏移量, 统计当前满足条件的路径数量。

js 复制代码
/**
 * Definition for a binary tree node.
 * function TreeNode(val, left, right) {
 *     this.val = (val===undefined ? 0 : val)
 *     this.left = (left===undefined ? null : left)
 *     this.right = (right===undefined ? null : right)
 * }
 */
/**
 * @param {TreeNode} root
 * @param {number} targetSum
 * @return {number}
 */
var pathSum = function(root, targetSum) {
    let map = new Map();
    let ans = 0;
    function dfs(root, pre) {
        if(!root) return null;
        
        let ppre = pre + root.val;
        let check_num = ppre - targetSum; // 偏移量

        ans += map.get(check_num) || 0;
        map.set(ppre, map.get(ppre) + 1 || 1);

        dfs(root.left, ppre);
        dfs(root.right,ppre);
        map.set(ppre, map.get(ppre) - 1);
    }
    map.set(0, 1);
    dfs(root, 0);
    return ans;
};
相关推荐
tkevinjd2 小时前
力扣148-排序链表
算法·leetcode·链表
qeen872 小时前
【C++】vector的模拟实现详解(二)
c++·学习·算法·迭代器·stl
zzz_23683 小时前
码上面试平台测试报告:功能、后台管理、异常状态与 JMeter 性能验证
jmeter·面试·职场和发展
沉迷学习 日益消瘦4 小时前
4 净资产趋势可视化:SVG 图表 + 手势交互 + 降采样算法
算法·交互
浩哥学JavaAI14 小时前
2026年最新AI agent面试(10)_通信与行业动态
人工智能·面试·职场和发展
可编程芯片开发14 小时前
基于MATLAB的PEF湍流风场生成器模拟与仿真
算法
罗西的思考15 小时前
【Agentic RL / 强化学习 / OPD】OpenClaw-RL 源码阅读笔记 --- (9)--- Reward Judging
人工智能·算法·机器学习
Mr.HeBoYan16 小时前
一次持续三天才出现的丢包故障——深入解析 DPDK Memory Ordering、rte_ring 与 CPU Memory Barrier (下)
linux·网络·算法·架构·dpdk
wabs66617 小时前
关于图论【深度优先搜索的理论基础】
算法·深度优先·图论
先吃饱再说18 小时前
LeetCode 101. 对称二叉树
算法