LeetCode Combination Sum III (DFS)

时间:2024-01-04 22:11:26

题意:

  在1~9这9个数字中选择k个出来,若他们的和为n,则加入答案序列,注意升序。

思路:

  用DFS的方式,每次决定一个数字,共决策k次。假设上个决策是第i位为5,那么i+1位的范围就是6~9。

 class Solution {
public:
vector<vector<int>> combinationSum3(int k, int n) {
vector<vector<int>> ans;
vector<int> num(k,);
DFS(ans,num,k,,,,n);
return ans;
}
void DFS(vector<vector<int>>& ans,vector<int>& num,int k,int j,int i,int sum,int n)
{
if(i==k)
{
if(sum==n) ans.push_back(num);
return ;
}
else
{
for(j++; j<; j++)
{
num[i]=j;
DFS(ans,num,k,j,i+,sum+j,n);
}
}
}
};

AC代码