path sum iii
This is an extremely easy question to answer if you've first covered subarray sum equals k.
1class Solution:
2 def pathSum(self, root: TreeNode, k: int) -> int:
3 def dfs(n, acc, counter):
4 if n:
5 acc += n.val
6 self.n += counter[(acc - k)] if (acc - k) in counter else 0
7 counter[acc] = 1 + (counter[acc] if acc in counter else 0)
8 dfs(n.left, acc, counter.copy())
9 dfs(n.right, acc, counter.copy())
10 self.n = 0
11 dfs(root, 0, {0:1})
12 return self.n