题目描述
思路分析
DFS暴搜
代码实现
class Solution {
public:
void dfs(int beginloc,int target,vector<int>& cur,vector<vector<int>>& res,vector<int>& a){
if(target==0){
res.push_back(cur);
return;
}
for(int i=beginloc;i<a.size();i++){
if(a[i]<=target){
cur.push_back(a[i]);
dfs(i,target-a[i],cur,res,a);
cur.pop_back();
}
}
return;
}
vector<vector<int>> combinationSum(vector<int>& a, int target) {
vector<int> cur;
vector<vector<int>> res;
dfs(0,target,cur,res,a);
return res;
}
};