用 Python 编写程序,计算可以用 0 到 n 个值形成的唯一二叉搜索树的数量
pythonserver side programmingprogramming更新于 2026/1/10 15:40:17
假设我们有一个数字 n,我们必须找到可以用 [0, n) 中的数字生成的唯一 BST 的数量。如果答案非常大,则将结果取 10^9+7 的模
因此,如果输入为 n = 3,则输出将为 5

为了解决这个问题,我们将遵循以下步骤 −
- numer := 1
- denom := n + 1
- 对于范围从 1 到 n 的 i,执行
- numer := numer * n + i
- numer := numer mod m
- denom := denom * i
- denom := denom mod m
- numer := numer * (denom^(m-2)) mod m
- 返回 numer mod m
让我们看看下面的实现以便更好地理解 −
示例
class Solution: def solve(self, n): m = 10 ** 9 + 7 numer = 1 denom = n + 1 for i in range(1, n + 1): numer *= n + i numer %= m denom *= i denom %= m numer *= pow(denom, m-2, m) return numer % m ob = Solution() print(ob.solve(4))
输入
4
输出
14
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

