Unique Binary Search Trees
https://leetcode.com/problems/unique-binary-search-trees/
Dynamic Programming
class Solution:
def numTrees(self, n: int) -> int:
self.cache = dict()
self.cache[0] = 1
def getNumTrees(num):
if num in self.cache:
return self.cache[num]
ans = 0
for i in range(1,num+1):
ans += getNumTrees(i-1) * getNumTrees(num-i)
self.cache[num] = ans
return ans
return getNumTrees(n)
Last updated
Was this helpful?