Leetcode-Combination(dfs)

来源:互联网 发布:2017计算机二c语言题库 编辑:程序博客网 时间:2024/06/14 16:53

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

class Solution {public:    vector<vector<int>> combine(int n, int k) {        vector<vector<int>> res;        if(k>n)            return res;        vector<int> ans;        combination(res,ans,0,0,n,k);        return res;    }    void combination(vector<vector<int>> &res,vector<int> &ans,int start,int num,int n,int k){        if(num==k){            res.push_back(ans);            return;        }        for(int i=start;i<n;i++){            ans.push_back(i+1);            combination(res,ans,i+1,num+1,n,k);            ans.pop_back();        }    }};


原创粉丝点击