Iterative

vector<vector<int>> combine(int n, int k) {

int i=0;

vector<vector<int>> ret;

vector<int> p(k,0);

while(i>=0){

p[i]++;

if(p[i]>n) --i;

else if(i==k-1) ret.push_back(p);

else{

++i;

p[i]=p[i-1];

}

}

return ret;

}

Last updated

Was this helpful?