leetcode 39. 组合总和
程序员文章站
2024-01-22 11:11:04
...
前言
在做39题发现个有意思的事情,对于重复的排列数 去重问题
通过对i的限制,可以防止i在递归时重新赋值为0
思路
1.全排列输出组合
2.通过自减作为终止条件
3.for循环为试探的数
4.运用参数i去重
去重前
标准答案。
class Solution {
public:
vector<vector<int>> res;
vector<int> path;
void dfs(vector<int>& candidates, int target,int num)
{
if(target<0)
{
return;
}
if(target==0)
{
res.push_back(path);
}
for(int i=num;i<candidates.size();i++)
{
path.push_back(candidates[i]);
dfs(candidates,target-candidates[i],i);
path.pop_back();
}
}
vector<vector<int>> combinationSum(vector<int>& candidates, int target) {
if(candidates.size()==0)
return res;
dfs(candidates,target,0);
return res;
}
};
上一篇: ANN之手写数字识别