题目链接:力扣
题意:
给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。
candidates 中的每个数字在每个组合中只能使用一次。
注意:解集不能包含重复的组合。
方法: 回溯
class Solution {
private:
vector<vector<int>> res;
vector<int> vct;
vector<int> candidates;
vector<bool> used;
void find(int loc,int sum,int target)//当前在candidates中的位置
{
if(sum>target) return ;//超出范围
if(sum==target)//边界条件,累加和等于target
{
res.emplace_back(vct);//将向量返回结果向量
return ;
}
for(int i=loc;i<candidates.size()&&sum+candidates[i]<=target;i++)
{
if(i>0&&candidates[i]==candidates[i-1]&&use