77. Combinations
Given two integers n and k, return all possible combinations of k numbers out of 1 ... n.
For example,
If n = 4 and k = 2, a solution is:
[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4], ]
class Solution {
public:
void guocheng(int n, int k, int pos, vector<vector<int>> &result, vector<int> m1)
{
//k代表还要选几个 pos代表上一个是选的是多少
if(k == 0)
{
result.push_back(m1);
return;
}
for(int i = pos + 1; i <= n - k + 1; i++)
{
m1.push_back(i);
guocheng(n,k-1,i,result,m1);
m1.pop_back();
}
}
vector<vector<int>> combine(int n, int k)
{
vector<vector<int>> result;
if(k == 0)
return result;
vector<int> m1;
guocheng(n, k, 0, result, m1);
return result;
}
};