Leetcode77. 组合

 

给定两个整数 n 和 k,返回 1 ... 中所有可能的 k 个数的组合。

示例:

输入: n = 4, k = 2
输出:
[
  [2,4],
  [3,4],
  [2,3],
  [1,2],
  [1,3],
  [1,4],
]
class Solution {
public:
    vector> combine(int n, int k) {
            vector> result;
            vector value;
            select(1,n,k,result, value);
            return result;
        
    }
    void select(int first,int last,int k,vector>& result,vector&value)
    {
        if(k==0)
        {
            result.push_back(value);
            return ;
        }
        for(int i=first;i<=last-k+1;i++)
        {
            value.push_back(i);
            select(i+1 ,last,k-1,result, value);
             value.pop_back();
        }
        
        
        
    }
    
       
    
};

你可能感兴趣的:(后台开发机试题)