https://leetcode.com/problems/unique-binary-search-trees/description/
给一个数n,求[1..n]能够成二叉搜索树的数目
思路:见discuss。用dp
class Solution:
def numTrees(self, n):
"""
:type n: int
:rtype: int
"""
G = [0] * (n+1)
G[0] = G[1] = 1
for i in range(2, n+1):
for j in range(1, n+1):
G[i] += G[j-1] * G[i-j]
return G[n]