Combination Sum III
class Solution {
public List<List<Integer>> combinationSum3(int k, int n) {
List<List<Integer>> result = new ArrayList<>();
DFS(k, n, 1, new ArrayList<Integer>(), result);
return result;
}
private void DFS(int k, int remain, int start, List<Integer> path, List<List<Integer>> result) {
if (path.size() == k && remain == 0) {
result.add(new ArrayList<>(path));
return;
}
if (path.size() > k || remain < 0) return;
for (int i = start; i <= 9; i++) {
if (i > remain) break;
path.add(i);
DFS(k, remain - i, i + 1, path, result);
path.remove(path.size() - 1);
}
}
}
最后更新于
这有帮助吗?