描述
求1~n的数字,可以构成多少种BST
解决
动态规划
class Solution {
public:
int numTrees(int n) {
int arr[n + 1] = {0};
arr[0] = arr[1] = 1;
for (int i = 2; i <= n; ++i)
{
for (int j = 1; j <= i; ++j)
{
arr[i] += arr[j - 1] * arr[i - j];
}
}
return arr[n];
}
};