classSolution { List<List<Integer>> ans = newArrayList<>(); List<Integer> path = newArrayList<>();
public List<List<Integer>> combinationSum3(int k, int n) { traversal(k,n,0,1); return ans; }
publicvoidtraversal(int k, int n, int sum, int startIndex){ if(sum > n || k < path.size()){ //剪枝 return; } if(sum == n && k == path.size()){ ans.add(newArrayList<>(path)); return; }
for(inti= startIndex; i <= 9; i++){ path.add(i); traversal(k, n, sum+i, i+1); path.remove(path.size()-1); } } }