163. 不同的二叉查找树
给出 n,问由 1...n 为节点组成的不同的二叉查找树有多少种?
样例
样例 1:
输入:n = 3
输出:5
解释:有5种不同形态的二叉查找树:
1 3 3 2 1
\ / / / \ \
3 2 1 1 3 2
/ / \ \
2 1 2 3
public class Solution {
/**
* @param n: An integer
* @return: An integer
*/
public int numTrees(int n) {
int[] dp = new int[n + 1];
dp[0] = 1;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i; j++) {
dp[i] += dp[j - 1] * dp[i - j];
}
}
return dp[n];
}
}
本文介绍了一种计算由1到n整数构成的不同形态的二叉查找树数量的方法。通过动态规划算法,实现了一个Java函数numTrees,输入整数n,返回所有可能的不同二叉查找树的数量。

1219

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



