96. 不同的二叉搜索树(LeetCode)(卡特兰数)

96. 不同的二叉搜索树

长度一样方案数也会一样,所以可以使用递推式做

图中为f(j-1)*f(i-j)

class Solution {
public:
    int numTrees(int n) {
        vector<int> f(n + 1);
        f[0] = 1;
        //f代表固定长度的二叉搜索树种类
        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];
    }
};
posted @ 2025-03-12 11:03  awei040519  阅读(8)  评论(0)    收藏  举报