LeetCode Link: 77. Combinations
Language: C#
Problem Statement
Given two integers n and k, return all possible combinations of k numbers chosen from the range [1, n].
You may return the answer in any order.
Example 1:
Input: n = 4, k = 2
Output: [[1,2],[1,3],[1,4],[2,3],[2,4],[3,4]]
Explanation: There are 4 choose 2 = 6 total combinations.
Note that combinations are unordered, i.e., [1,2] and [2,1] are considered to be the same combination.
Example 2:
Input: n = 1, k = 1
Output: [[1]]
Explanation: There is 1 choose 1 = 1 total combination.
Constraints:
1 <= n <= 20 1 <= k <= n
Solution
public class Solution
{
public IList<IList<int>> Combine(int n, int k)
{
var list = new List<IList<int>>();
BT(list, new List<int>(), n, k, 1);
return list;
}
private void BT(IList<IList<int>> list, List<int> temp, int n, int k, int index)
{
if (temp.Count == k)
{
var l = new List<int>(temp);
list.Add(l);
return;
}
for (int i=index; i<=n; i++)
{
temp.Add(i);
BT(list, temp, n, k, i+1);
temp.Remove(i);
}
}
}