寻找二叉搜索树的数量
二叉搜索树
设:
则有:
而:
以i为根结点,左边有i-1个节点可以作为左子树,右边有 n - i个节点可以当右子树
所以说,
由于只关心数量,所以不用考虑?的结构
每个G都通过它前面的G计算出来
class Solution:
def numTrees(self, n):
"""
:type n: int
:rtype: int
"""
G = [0]*(n+1)
G[0], G[1] = 1, 1
for i in range(2, n+1):
for j in range(1, i+1):
G[i] += G[j-1] * G[i-j]
return G[n]