递归解决:
代码:
class Solution {
public:
vector<vector<int> > combine(int n, int k) {
vector<vector<int>> v;
vector<int> vs;
if(k>n)
return v;
dfs(v,vs,0,k,n);
return v;
}
void dfs(vector<vector<int>> &v,vector<int> vs,int index,int k,int n){
if(n-index<k)
return;
if(!k)
v.push_back(vs);
for(int i=index+1;i<=n;i++){
vs.push_back(i);
dfs(v,vs,i,k-1,n);
vs.pop_back();
}
}
};