leecode96.不同的二叉搜索树
在画的过程中发现规律,每次选择不同的节点作为根节点,左右两边的节点再排列组合一下就能求出总数
class Solution {
public:int numTrees(int n) {vector<int> dp(n+1,0);dp[0]=1;for(int i=1;i<=n;i++)for(int j=0;j<i;j++)dp[i]+=dp[i-j-1]*dp[j];return dp[n];}
};
在画的过程中发现规律,每次选择不同的节点作为根节点,左右两边的节点再排列组合一下就能求出总数
class Solution {
public:int numTrees(int n) {vector<int> dp(n+1,0);dp[0]=1;for(int i=1;i<=n;i++)for(int j=0;j<i;j++)dp[i]+=dp[i-j-1]*dp[j];return dp[n];}
};