链接: https://oj.leetcode.com/problems/unique-binary-search-trees/
dp[i]表示当n为i时的BST数量..递推关系如下图
这样,就把n=4分割为n=3,n=1,n=2.用dp数组记录结果
代码:
class Solution { public: int numTrees(int n) { int dp[n+1]; memset(dp,0,sizeof(dp)); dp[0]=1; for(int i=1;i<=n;i++) { for(int j=0;j<i;j++) { dp[i]+=dp[j]*dp[i-j-1]; } } return dp[n]; } };