LeetCode: Combinations

来源:互联网 发布:澳洲软件工程硕士 编辑:程序博客网 时间:2024/05/01 07:58

Problem:

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],]


com表示从第p位开始选出第l个数。

class Solution {public:    void com(int n, int k, int l, int p, vector< vector<int> > &result, vector<int> &rcd)    {        if(l == k)        {            result.push_back(rcd);            return;        }        for(int i = p; i < n; ++i)        {            rcd[l] = i + 1;            com(n, k, l+1, i+1, result, rcd);        }    }    vector<vector<int> > combine(int n, int k) {        // Start typing your C/C++ solution below        // DO NOT write int main() function        vector< vector<int> > result;        vector<int> rcd(k);        com(n, k, 0, 0, result, rcd);        return result;    }};


原创粉丝点击