-
-
Notifications
You must be signed in to change notification settings - Fork 298
/
Copy path96.py
30 lines (28 loc) · 1.01 KB
/
96.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
__________________________________________________________________________________________________
sample 16 ms submission
class Solution:
def numTrees(self, n: int) -> int:
nums = {}
nums[0] = 1
nums[1] = 1
def search(n):
if n in nums:
return nums[n]
else:
sum = 0
for i in range(1, n+1):
sum += search(i-1) * search(n-i)
nums[n] = sum
return sum
return search(n)
__________________________________________________________________________________________________
sample 12932 kb submission
# 96. Unique Binary Search Trees (Catalan Number)
# dp, bottom up
class Solution:
def numTrees(self, n: int) -> int:
G = [1,1]
for i in range(2,n+1):
G.append(sum(G[j]*G[i-1-j] for j in range(i)))
return G[n]
__________________________________________________________________________________________________