前面已经做过很多此组合的题了,所以这个也就比较简单,需要注意的是要避免重复,比如[1,2] [2,1]是重复的
void com(std::vector<std::vector<int>>&a,std::vector<int> v,int n,int k,int st){
if(v.size()==k)
a.push_back(v);
for(int i=st;i<=n;i++){
v.push_back(i);
com(a,v,n,k,i+1);
v.pop_back();
}
}
std::vector<std::vector<int>> combine(int n, int k) {
std::vector<std::vector<int>> a;
std::vector<int> v;
int i=1;
com(a,v,n,k,i);
return a;
}