关于递归回溯法的时间复杂度的计算

class Solution {
public:
    vector<vector<int>> combinationSum(vector<int>& candidates, int target) {
        vector<vector<int>> ret;
        vector<int> tmp;
        help(ret,tmp,candidates,target,0);
        return ret;
    }
    void help(vector<vector<int>> &ret,vector<int> &tmp,vector<int> &candidates,int target,int index){
        if(target==0){
            ret.push_back(tmp);
            return;
        }
        for(int i=index;i<candidates.size()&&target>=0;i++){
            tmp.push_back(candidates[i]);
            help(ret,tmp,candidates,target-candidates[i],i);
            tmp.pop_back();
        }
    }
};

这是leetcode上的39. Combination Sum
想请问这种递归算法时间复杂度是多少?如何计算

全部评论
有一种想法是解有多少个,时间复杂度就接近那个值,还有一种看法可以看我的题解https://leetcode-cn.com/problems/subsets/solution/dui-liang-chong-di-gui-qiu-jie-suan-fa-de-shi-jian/
点赞 回复 分享
发布于 2020-02-18 16:22

相关推荐

点赞 评论 收藏
分享
点赞 1 评论
分享
牛客网
牛客企业服务