增长超人做网站多少钱,益阳市网站建设,锦州网站建设公司,app软件开发公司怎么选给定一个候选人编号的集合 candidates 和一个目标数 target #xff0c;找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用 一次 。 注意#xff1a;解集不能包含重复的组合。 示例 1: 输入: candidates [10,1,2,7,6,1,5… 给定一个候选人编号的集合 candidates 和一个目标数 target 找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用 一次 。 注意解集不能包含重复的组合。 示例 1: 输入: candidates [10,1,2,7,6,1,5], target 8,
输出:
[
[1,1,6],
[1,2,5],
[1,7],
[2,6]
] 示例 2: 输入: candidates [2,5,2,1,2], target 5,
输出:
[
[1,2,2],
[5]
] 提示: 1 candidates.length 1001 candidates[i] 501 target 30 class Solution {
public:vectorint path;vectorvectorint res;int sum0;void func(vectorint candidates, int target,int index){if(sumtarget)return;if(sumtarget){res.push_back(path);return;}for(int iindex;icandidates.size();i){if(iindexcandidates[i]candidates[i-1])//不是通过递归进入的循环时iindexcontinue;sumcandidates[i];path.push_back(candidates[i]);func(candidates,target,i1);sum-candidates[i];path.pop_back();}}vectorvectorint combinationSum2(vectorint candidates, int target) {sort(candidates.begin(),candidates.end());func(candidates,target,0);return res;}
};