题目描述
其中j为根节点左半部分节点数目。
代码实现
class Solution { public: //建立动态规划方程 //dp[i] = S(dp[j] * dp[i-j-1]) , 0 <= j < i int numTrees(int n) { vector<int> dp(n + 1, 0); dp[0] = 1; dp[1] = 1; for(int i = 2; i <= n; i ++){ int targets = 0; for(int j = 0; j < i; j ++) targets += dp[j] * dp[i - j - 1]; dp[i] = targets; } return dp[n]; } };
原文:https://www.cnblogs.com/latencytime/p/14620385.html