二叉搜索树:左孩子比根小,右孩子比根大
dp[n]:表示n长的序列1到n能构成的不同二叉搜索树的个数
f(i,n):表示以i为根,n长的序列能构成的不同二叉搜索树的个数
显然dp[n]=(i=1到n,所有的f(i,n)的和)
f(i,n)以i为根,左子树为1到i-1构成的二叉搜索树,右子树为i+1到n构成的二叉搜索树
f(i,n)=dp[i-1]+dp[n-i]
融合两个公式可以得到
i=1
G(n)= ∑ G(i−1)⋅G(n−i)
n
还可以直接用 卡塔兰数 公式解决
二叉搜索树:左孩子比根小,右孩子比根大
dp[n]:表示n长的序列1到n能构成的不同二叉搜索树的个数
f(i,n):表示以i为根,n长的序列能构成的不同二叉搜索树的个数
显然dp[n]=(i=1到n,所有的f(i,n)的和)
f(i,n)以i为根,左子树为1到i-1构成的二叉搜索树,右子树为i+1到n构成的二叉搜索树
f(i,n)=dp[i-1]+dp[n-i]
融合两个公式可以得到
i=1
G(n)= ∑ G(i−1)⋅G(n−i)
n
还可以直接用 卡塔兰数 公式解决