时间复杂度(O(n^2)),思想:动态规划
class Solution:
def numTrees(self, n: int) -> int:
ts = [1, 1]
for i in range(1, n):
curr_num = 0
for j in range(i // 2 + 1):
dup = 1 if j == i - j else 2
curr_num += ts[j] * ts[i - j] * dup
ts.append(curr_num)
return ts[n]