96. Unique Binary Search Trees

class Solution(object):
    def numTrees(self, n):
        """
        :type n: int
        :rtype: int
        """
        nums = [0] * (n + 1)
        nums[0] = 1
        nums[1] = 1
        if n == 0 or n == 1:
            return 1
        for i in range(2, n + 1):
            result = 0
            for j in range(0, i):
                result += nums[j] * nums[i - 1 - j]
            nums[i] = result
        return nums[n]

if __name__ == '__main__':
    answer = Solution()
    print answer.numTrees(3)

blogroll

social