您的位置:首页 > 其它

Leetcode 40 Combination Sum II

2018-01-18 10:49 369 查看

Leetcode 40 Combination Sum II

class Solution {
public:
vector<vector<int>> sum;
vector<vector<int>> combinationSum2(vector<int>& candidates, int target) {
vector<int> result;
sort(candidates.begin(),candidates.end());
Combine(0,0,result,candidates,target);
return sum;

}
void Combine(int curSum,int pos,vector<int>& result,vector<int>& candidates,int target) {

if (curSum == target) {
sum.push_back(result);
return;
} else if (curSum > target)
return;

for (int i = pos;i < candidates.size() && candidates[i] <= target;++i) {

if (i != pos && candidates[i] == candidates[i-1])
continue;
curSum += candidates[i];
int tmp = i + 1;
result.push_back(candidates[i]);
Combine(curSum,tmp,result,candidates,target);
result.pop_back();
curSum -= candidates[i];
}

}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode