您的位置:首页 > 其它

216. Combination Sum III LeetCode

2016-02-14 18:52 375 查看
题意:给出n和k,表示你可以使用1-9中的n个数加和组成k,每种组合中1-9的每个数组只能使用一次。要求组合中数字按升序排序。

题解:递归搜索。

class Solution {
public:
void dfs(int n,int k,int x,vector<int> v,vector<vector<int>>& ans)
{
if(n < 0 || k < 0) return;
if(n == 0 && k == 0)
{
ans.push_back(v);
return ;
}
for(int i = x; i <= 9; i++)
{
v.push_back(i);
dfs(n - i,k - 1,i + 1,v,ans);
v.pop_back();
}
}
vector<vector<int>> combinationSum3(int k, int n) {
vector<vector<int>> ans;
vector<int> v;
dfs(n,k,1,v,ans);
return ans;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode