77. Combinations

来源:互联网 发布:太阳黑子数据下载 编辑:程序博客网 时间:2024/05/18 23:16

题目:

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

这道题有点类似于 90. Subsets II 子集列举 通过选择与不选择某个数来实现枚举


class Solution {public:    vector<vector<int> > combine(int n, int k) {        vector<vector<int>> res;        vector<int> temp;        build(1,n,k,res,temp);        return res;    }    void build(int num,int n,int k,vector<vector<int>> &res,vector<int>&temp ){        if(k==0){            res.push_back(temp);            return;        }        if(num>n) return;        temp.push_back(num);        build(num+1,n,k-1,res,temp);     //选择        temp.pop_back();        build(num+1,n,k,res,temp);       //不选择    }};


原创粉丝点击