Unique Binary Search Trees

class Solution {
public:
    int numTrees(int n) {
        if(n<=2) return n;
        int i=1;
        n --;
        int sum=0;
    
        while(i<n){
            sum +=  numTrees(i) * numTrees(n-i);
            i++;
        }
        sum +=  2 * numTrees(n); 
        return sum;
    }
};

 就是以“根”着眼点,剩下的n-1个元素怎么摆的问题。

 枚举:0,n-1;

       1,n-2;

       ……,

       n-1, 0;

可以改进:用一个数组,保存,备忘录

原文地址:https://www.cnblogs.com/julie-yang/p/4688129.html