DFS
level参数也可以用out.size()代替
void DFS(vector<vector<int>>& res, vector<int>& out, int n, int k,int init,int level) {
if (level >= k) {
res.push_back(out);
return;
}
else
{
for (int i = init; i <= n; i++)
{
out.push_back(i);
DFS( res, out, n, k, i + 1,level+1);
out.pop_back();
}
}
}
vector<vector<int>> combine(int n, int k) {
vector<vector<int>> res;
vector<int> out;
vector<int> vis(n + 1, 0);
DFS( res, out, n, k,1,0);
return res;
}