[LeetCode]Combinations

 

Given two integers n and k, return all possible combinations of k numbers out of 1 ... n.

For example,
If n = 4 and k = 2, a solution is:

[

  [2,4],

  [3,4],

  [2,3],

  [1,2],

  [1,3],

  [1,4],

]

 

Have you been asked this question in an interview? 
class Solution {

private:

    vector<vector<int> > res;

    vector<int> ans;

public:

    void DFS(int n,int k,int start,int dep)

    {

        if(dep==k)

        {

            res.push_back(ans);

            return;

        }

        for(int i=start;i<n-k+2;i++)

        {

            ans.push_back(i+dep);

            DFS(n,k,i,dep+1);

            ans.pop_back();

        }

    }

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

        res.clear();

        ans.clear();

        DFS(n,k,1,0);

        return res;

    }

};

  

你可能感兴趣的:(LeetCode)