Description
If the depth of a tree is smaller than 5, then this tree can be represented by an array of three-digit integers. You are given an ascending array nums consisting of three-digit integers representing a binary tree with a depth smaller than 5, where for each integer:
- The hundreds digit represents the depth
dof this node, where1 <= d <= 4. - The tens digit represents the position
pof this node within its level, where1 <= p <= 8, corresponding to its position in a full binary tree. - The units digit represents the value
vof this node, where0 <= v <= 9.
Return the sum of all paths from the root towards the leaves.
It is guaranteed that the given array represents a valid connected binary tree.
Example 1:

Input: nums = [113,215,221]
Output: 12
Explanation:
The tree that the list represents is shown.
The path sum is (3 + 5) + (3 + 1) = 12.
Example 2:

Input: nums = [113,221]
Output: 4
Explanation:
The tree that the list represents is shown.
The path sum is (3 + 1) = 4.
Constraints:
1 <= nums.length <= 15110 <= nums[i] <= 489numsrepresents a valid binary tree with depth less than5.numsis sorted in ascending order.
Solutions
Solution 1
PythonJavaC++Go
class Solution: def pathSum(self, nums: List[int]) -> int: def dfs(node, t): if node not in mp: return t += mp[node] d, p = divmod(node, 10) l = (d + 1) * 10 + (p * 2) - 1 r = l + 1 nonlocal ans if l not in mp and r not in mp: ans += t return dfs(l, t) dfs(r, t) ans = 0 mp = {num // 10: num % 10 for num in nums} dfs(11, 0) return ans(code-box)
