096 Unique Binary Search Trees

题目: 096 Unique Binary Search Trees

这道题目就是catalan数, 因为递归关系 为

C_0 = 1 \quad \mbox{and} \quad C_{n+1}=\sum_{i=0}^{n}C_i\,C_{n-i}\quad\text{for }n\ge 0;     C_n = {2n\choose n} - {2n\choose n+1} = {1\over n+1}{2n\choose n} \quad\text{ for }n\ge 0,

代码为

class Solution:
    # @param {integer} n
    # @return {integer}
    def numTrees(self, n):
        # Catalan Number
        ans = 1
        for i in range(1, n+1):
            ans *= (n+i)*1.0/i
        return int(round(ans/(n+1)))

 

posted @ 2015-07-14 13:36  dapanshe  阅读(87)  评论(0编辑  收藏  举报