Binary Trees With Factors LeetCode solution in Python

1
class Solution:
2
def numFactoredBinaryTrees(self, nums: List[int]) -> int:
3
nums = set(nums)
4
n = len(nums)
5

6
@lru_cache(None)
7
def helper(num):
8
trees = 1
9
for factor in nums:
10
if not num % factor and num // factor in nums:
11
trees += helper(factor) * helper(num // factor)
12

13
return trees
14

15
return sum(helper(num) for num in nums) % (10**9 + 7)

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0