解题思路:
(1)回溯,下一个仍为i
class Solution {
public:
vector<vector<int>> vec;
void helper(vector<int> v,vector<int>& c,int target,int l) {
if(target==0) {
vec.push_back(v);
return;
} else if(target<0) return;
for(int i=l;i<c.size();i++) {
v.push_back(c[i]);
helper(v,c,target-c[i],i);
v.pop_back();
}
return;
}
vector<vector<int>> combinationSum(vector<int>& c, int target) {
vector<int> v;
helper(v,c,target,0);
return vec;
}
};