0.题目
1. 动态规划 o(n^2) o(n)
class Solution:
#用dp记录 以i位置为根节点的树(有次序的n个数)
def numTrees(self, n):
dp = [0]*(n+1)
dp[0],dp[1]=1,1
# 升序前i个数 组成的 可能情况 : dp[i]
for i in range(2,n+1):
# 升序第j个数 为 根节点的树
for j in range(1,i+1):
dp[i] += dp[j-1]*dp[i-j]
return dp[n]