#3911. 二叉搜索树计数探秘

二叉搜索树计数探秘

🐰😺🌳 兔猫信奥学院的二叉搜索树计数探秘 🌳😺🐰

在信奥学院的魔法森林中,隐藏着一片神秘的数字果林:每棵果树都能长出编号从 1 到 n 的神奇果实。小兔和小猫被师傅交给重任——他们要用这些果实按照二叉搜索树的规则一层层地搭建果树阵列。

二叉搜索树 的规则是:

  • 每个节点存放一个果实编号;
  • 左子树所有节点编号都比根节点小,右子树所有节点编号都比根节点大;
  • 而果实编号必须恰好使用 1 到 n 的所有果实,且每个果实只能使用一次。

小兔好奇地问:“一共有多少种不同的果树阵列呢?”
加菲老师微笑着说:“这正是今天的试炼——计算恰由 n 个节点组成的不同二叉搜索树的总数!”


输入格式

输入一行,含整数 n,表示果林节点(果实)数量。
  • 1 ≤ n ≤ 5000

输出格式

输出一个整数,表示不同二叉搜索树的总数。

样例 1

3
5
  • 解释:当 n=3 时,可构造的 BST 有 5 种。

样例 2

1
1
  • 解释:当 n=1 时,只有一种单节点的 BST。

🎓 加菲老师寄语:
Catalan 数列蕴含丰富的组合奥秘,掌握它你就能轻松解决一系列“可搭建结构”计数问题。祝你在信奥的探秘之旅中收获满满!