一、题目
二、代码
class Solution {
public:
vector<vector<int>> result_vector;
vector<int> path;
int max_num=9;
void back_track(int max_num,int k, int start_point,int request_sum)
{
if(path.size()==k)
{
int sum=0;
for(int i=0;i<path.size();i++) sum+=path[i];
if(sum==request_sum) result_vector.push_back(path);
return ;
}
for(int i=start_point;i<=max_num-(k-path.size())+1;i++)
{
path.push_back(i);
back_track(max_num,k,i+1,request_sum);
path.pop_back();
}
}
vector<vector<int>> combinationSum3(int k, int n)
{
result_vector.clear();
path.clear();
back_track(max_num,k,1,n);
return result_vector;
}
};
三、运行结果