动态规划法
class Solution {
public:
int numTrees(int n)
{
vector<int> dp;
dp.push_back(1);
dp.push_back(1);
for(int i=2;i<=n;i++)
{
dp.push_back(0);
for(int j=1;j<=i;j++)
{
dp[i]+=dp[j-1]*dp[i-j];
}
}
return dp[n];
}
};