题目地址:https://leetcode-cn.com/problems/combination-sum-ii/
思路:dfs,排序剪枝
AC代码:
class Solution {
public:
vector<vector<int>>ans;
vector<int>res;
vector<int>sum;
void solve(vector<int>& candidates, int target,int k){
if(target==0){
ans.push_back(res);
return;
}
int n = candidates.size();
for(int i=k+1;i<n;i++){
if(i!=k+1 && candidates[i] == candidates[i-1])
continue;
if(target>=candidates[i]){
res.push_back(candidates[i]);
solve(candidates,target-candidates[i],i);
res.pop_back();
}else
return;
}
}
vector<vector<int>> combinationSum2(vector<int>& candidates, int target) {
sort(candidates.begin(),candidates.end());
solve(candidates,target,-1);
return ans;
}
};
继续阅读与本文标签相同的文章
下一篇 :
泛型反射ROM
-
阿里云服务器搭建一个网站网站建设的基本步骤——部署与发布新手入门
2026-05-18栏目: 教程
-
网络基础技术实践#网络安全基础技术实践课程
2026-05-18栏目: 教程
-
阿里云服务器计算网络增强型实例sn1ne 适合中大型网站及性能要求高的公司业务使用
2026-05-18栏目: 教程
-
前端进阶|第八天 京东笔试题,引用传参赋值无效?
2026-05-18栏目: 教程
-
阿里云弹性伸缩ESS必知必会
2026-05-18栏目: 教程
