给定一个整数 n,求以 1 ... n 为节点组成的二叉搜索树有多少种?
示例:
输入: 3
输出: 5
解释:
给定 n = 3, 一共有 5 种不同结构的二叉搜索树:
1 3 3 2 1
\ / / / \ \
3 2 1 1 3 2
/ / \ \
2 1 2 3
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/unique-binary-search-trees
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
直接用公式:
比较水的是,结果只能返回int类型的,这就简单不少了。
1 class Solution { 2 public int numTrees(int n) { 3 double t = 1.0; 4 long cnt = 1; 5 // C(n, i) 6 for (int i = 1; i <= n; i++) { 7 t = t * (n - i + 1)*1.0 / i; 8 cnt += t*t; 9 } 10 long res = cnt / (1+n); 11 return (int)res; 12 } 13 }
原文地址:https://www.cnblogs.com/yfs123456/p/11603898.html
时间: 2024-10-12 15:53:10