leetCode.96. 不同的二叉搜索树
题目思路
 
代码
// 方法一:直接用卡特兰数就行 
// 方法二:递归方法
class Solution {
public:
    int numTrees(int n) {
        // 这里把 i当成整个结点,j当成左子树最左侧结点,并一次当根节点尝试
        // f[ i ] = f[ j - 1 - L + 1] * f[ R - (j + 1) + 1] = f[ j - 1] * f[i - j]
        // 其中L = 1, R = j
        vector<int> f(n + 1);
        f[0] = 1;
        for ( int i = 1; i <= n; ++ i ) {
            for ( int j = 1; j <= i; ++ j ) {
                f[i] += f[j - 1] * f[ i - j ];
            }
        }
        return f[n];
    }
};
                





![[数据库]mysql用户管理权限管理](https://img-blog.csdnimg.cn/direct/8f20e352fa2d4de6b09b6e9cd1ece0c9.png)












