可以使用 Python 中的 n 个不同节点生成查找可能 BST 数量的程序

假设我们有一个数字 n。如果我们有像 [1,2,...,n] 这样的数字,我们必须计算可以使用这些 n 值形成的可能 BST 的数量。如果答案太大,则将结果修改为 10^9+7。

所以,如果输入像 n = 3,那么输出将是 14,

示例

让我们看看以下实现以更好地理解 -

def solve(n):

   a = [0, 1]

   m = 10**9+7

   max_n = 1000

   for k in range(2, max_n + 2):

      a.append((1 + sum(a[i] * a[k - i] for i in range(1, k))) % m)

   return ((a[n + 1] - 1) % m)

n = 3

print(solve(n))

输入

3
输出结果
14

以上是 可以使用 Python 中的 n 个不同节点生成查找可能 BST 数量的程序 的全部内容, 来源链接: utcz.com/z/363272.html

回到顶部