主页 > IT业界  > 

leetcode第39题组合总和

leetcode第39题组合总和

原题出于leetcode第39题 leetcode /problems/combination-sum/description/题目如下:

给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。

candidates 中的 同一个 数字可以 无限制重复被选取 。如果至少一个数字的被选数量不同,则两种组合是不同的。

对于给定的输入,保证和为 target 的不同组合数少于 150 个。

1.树型结构

2.代码

这里用到的剪枝与组合总和Ⅲ中sum类似,不再赘述

class Solution { public: vector<int>path; vector<vector<int>>result; void backtracking(vector<int>& candidates,int target,int sum,int startindex){ if(sum>target)return ; if(sum==target) { result.push_back(path); return; } for(int i=startindex;i<candidates.size();i++) { sum+=candidates[i]; path.push_back(candidates[i]); backtracking(candidates,target,sum,i); sum-=candidates[i]; path.pop_back(); } return ; } vector<vector<int>> combinationSum(vector<int>& candidates, int target) { path.clear(); result.clear(); backtracking(candidates,target,0,0); return result; } };

标签:

leetcode第39题组合总和由讯客互联IT业界栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“leetcode第39题组合总和