vector<vector<int> > combine(int n, int k) {
     ret.clear();
     vector<int> ans;
     ans.clear();
     combineHelper(ans, n, k, 1);        
     return ret;
 }
Beispiel #2
0
vector<vector<int> > combine(int n, int k) {
    vector<int> subans;
    vector<vector<int>> ans;
    if(n < k)
        return ans;
    combineHelper(ans, subans, 1 , n, k);
    return ans;
}
 vector<vector<int> > combine(int n, int k) {
     // Note: The Solution object is instantiated only once and is reused by each test case.
     vector<vector<int> > result;
     vector<int> oneSolution;
     
     combineHelper(k, n, oneSolution, result,1);
     return result;
 }
 void combineHelper(int k, int n, vector<int> s, vector<vector<int> > &r,int index){
     //base
     if (k==0){
         r.push_back(s);
         return;
     }
     
     if (index <= n)
     {
         //choose current one:
         s.push_back(index);
         combineHelper(k-1, n, s, r, index+1);
         
         //or not choose.
         s.pop_back();
         combineHelper(k, n, s, r, index+1);
     }
 }
 void combineHelper(vector<int> &ans, int n, int k,int index) {
     if(k == 0) {
         ret.push_back(ans);
         return;
     }
     int i;
     for(i = index;i <= n;i ++) {
         ans.push_back(i);
         combineHelper(ans,n,k-1,i+1);
         ans.pop_back();
     }
 }
Beispiel #6
0
void combineHelper(vector<vector<int>> &ans, vector<int>& subans, int i, int n, int k){
    if(k == 0){
        ans.push_back(subans);
        return;
    }
    if(k > n - i + 1){
        return;
    }
    for(;i <= n; i++){
        subans.push_back(i);
        combineHelper(ans, subans, i + 1, n, k - 1);
        subans.pop_back();
    }
}