# Blogs Hub

### by Sumit Chourasia | Nov 18, 2020 | Category :coding | Tags : algorithmarraydata-structureleetcodemedium #### Combination Sum III - Array - Medium - LeetCode

Find all valid combinations of k numbers that sum up to n such that the following conditions are true:

Only numbers 1 through 9 are used.
Each number is used at most once.
Return a list of all possible valid combinations. The list must not contain the same combination twice, and the combinations may be returned in any order.

Example 1:

Input: k = 3, n = 7
Output: [[1,2,4]]
Explanation:
1 + 2 + 4 = 7
There are no other valid combinations.
Example 2:

Input: k = 3, n = 9
Output: [[1,2,6],[1,3,5],[2,3,4]]
Explanation:
1 + 2 + 6 = 9
1 + 3 + 5 = 9
2 + 3 + 4 = 9
There are no other valid combinations.
Example 3:

Input: k = 4, n = 1
Output: []
Explanation: There are no valid combinations. [1,2,1] is not valid because 1 is used twice.
Example 4:

Input: k = 3, n = 2
Output: []
Explanation: There are no valid combinations.
Example 5:

Input: k = 9, n = 45
Output: [[1,2,3,4,5,6,7,8,9]]
Explanation:
1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 = 45
​​​​​​​There are no other valid combinations.

Constraints:

2 <= k <= 9
1 <= n <= 60

``````public class Solution {
IList<IList<int>> result = new List<IList<int>>();
public IList<IList<int>> CombinationSum3(int k, int n) {
var list = new List<int>();
Helper(k,n,9,1, list);

return result;
}

private void Helper(int k, int sum, int n, int start, List<int> list){
if(k==0){
if(sum==0){
var temp = new List<int>(list);
}
return;
}

if(sum<0){
return;
}

for(int i=start;i<=n;i++){