美文网首页
LC95 Unique Binary Search Trees

LC95 Unique Binary Search Trees

作者: Rookie118 | 来源:发表于2020-09-03 09:10 被阅读0次

本题链接:Unique Binary Search Trees II

本题标签:Tree, Dynamic Programming

本题难度:\color{Orange}{Medium}

英文题目 中文题目

方案1:


class Solution {
private:
    vector<TreeNode*> genTrees(int begin, int end)
    {
        vector<TreeNode*> temp;
        if(begin > end)
            temp.push_back(NULL);
        else if(begin == end)
            temp.push_back(new TreeNode(begin));
        else
        {
            for(int i = begin; i <= end; ++i)
            {
                vector<TreeNode*> left = genTrees(begin, i - 1);
                vector<TreeNode*> right = genTrees(i + 1, end);
                
                for(int j = 0; j < left.size(); ++j)
                {
                    for(int k = 0; k < right.size(); ++k)
                    {
                        TreeNode* root = new TreeNode(i);
                        root->left = left[j];
                        root->right = right[k];
                        temp.push_back(root);
                    }
                }
            }
        }
        return temp;
    }
    
public:
    vector<TreeNode*> generateTrees(int n) {
        if(n < 1)
            return vector<TreeNode*>();
        
        return genTrees(1, n);
    }
};

时间复杂度:O ( 4^N )

空间复杂度:O ( ? )


相关文章

网友评论

      本文标题:LC95 Unique Binary Search Trees

      本文链接:https://www.haomeiwen.com/subject/zvhnsktx.html