递归求解卡特兰数(类似斐波那锲数列)

令h(0)=1,h(1)=1,卡塔兰数满足递归式:

h(n)= h(0)*h(n-1) + h(1)*h(n-2) + ... + h(n-1)h(0) (其中n>=2),这是n阶递推关系;

还可以化简为1阶递推关系: 如h(n)=(4n-2)/(n+1)*h(n-1)(n>1),h(0)=1

class Solution:
    def catalan(self, n):
        def dfs(n):
            if n == 1 or n == 0:
                return 1
            else:
                return (4*n-2)/(n+1)*dfs(n-1)
        return int(dfs(n))

print(Solution().catalan(9))

猜你喜欢

转载自blog.csdn.net/L141210113/article/details/88075305