[LeetCode]Unique Binary Search Trees 唯一BST数量

Unique Binary Search Trees 唯一BST数量

思路:这道题如果不知道卡特兰数的话是做不出的,它的思想为结点个数为n的二叉树数量为左结点数量和右结点数量的乘积之和。

class Solution(object):
    def numTrees(self, n):
        """
        :type n: int
        :rtype: int
        """
        dp = [0] * (n + 1)
        dp[0] = dp[1] = 1
        for i in range(2, n+1):
            for j in range(i):
                dp[i] += dp[j] * dp[i-j-1]
        return dp[n]
posted @ 2017-09-16 13:13  banananana  阅读(242)  评论(0编辑  收藏  举报