39. 组合总和
class Solution {
public:
vector<vector<int>>res;
vector<int>cur;vector<int>candidates;
int s=0,t;
void bt(int start){
if(s>=t){if(s==t)res.push_back(cur);return;}
for(int j=start;j<candidates.size();j++){int i=candidates[j];
cur.push_back(i);s+=i;
bt(j);
cur.pop_back();s-=i;
}
}
vector<vector<int>> combinationSum(vector<int>& candidates, int target) {
t=target;this->candidates=candidates;bt(0);return res;
}
};