
这道题的动态方程为,即左右两边所有可能的树的组合
代码如下:
class Solution:
def numTrees(self, n: int) -> int:
import functools
@functools.lru_cache(None)
def fuc(i,j):
if i >= j: return 1
res = 0
for k in range(i,j+1):
res = res + fuc(i,k-1) * fuc(k+1,j)
return res
return fuc(1,n)
本文介绍了一种使用动态规划方法求解Catalan数的问题,通过递归公式和缓存技术优化了计算过程,提高了算法效率。代码实现采用Python语言,展示了如何利用functools.lru_cache进行函数结果缓存。
273

被折叠的 条评论
为什么被折叠?



