如何解决计算给定解的时间复杂度
我正在尝试 leetcode 问题 - 给定一个整数 n,返回所有结构唯一的 BST(二叉搜索树),它正好有 n 个具有从 1 到 n 的唯一值的节点。以任何顺序返回答案。 约束: 1
代码如下
class Solution {
public:
vector<TreeNode*> solve(int s,int e){
vector<TreeNode*> v;
if(s > e){
v.push_back(NULL);
}
for(int i = s; i<=e; i++){
vector<TreeNode*> l = solve(s,i-1);
vector<TreeNode*> r = solve(i+1,e);
for(auto j : l){
TreeNode*left = j;
for(auto k : r){
TreeNode*right = k;
TreeNode*node = new TreeNode(i);
node->left = j;
node->right = k;
v.push_back(node);
}
}
}
return v;
}
vector<TreeNode*> generateTrees(int n) {
return solve(1,n);
}
};
我的观察-
没有递归调用 - n
我发现它的顺序 -
n (2(n^3)*n^2)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。