力扣216 组合总数Ⅲ
找出所有相加之和为 n 的 k 个数的组合,且满足下列条件:
1只使用数字1到9
2每个数字最多使用一次
public List<List<Integer>> combinationSum3(int k, int n) {
List<List<Integer>> ans = new ArrayList<List<Integer>>();
List<Integer> combine = new ArrayList<Integer>();
dfs(k, ans, combine, 0,n);
return ans;
}
public void dfs( int target, List<List<Integer>> ans, List<Integer> combine, int idx,int n) {
if (target == 0) {
if (combine.size()==n)
ans.add(new ArrayList<Integer>(combine));
return;
}
for (int i = idx; i < 10; i++) {
if (target - i < 0) {
break;
}
combine.add(i);
dfs(target - i, ans, combine, i+1,n);
combine.remove(combine.size() - 1);
}
}