[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], ]
要求
给定两个整数(n,k),返回长度为k,从1到n的所有组合(注意1.组合没有顺序 2. [2,3]和[3,2]为同一组,取前者小于后者的那一组)。
1 class Solution { 2 public: 3 vector<vector<int> > combine(int n, int k) { 4 v.resize(k); 5 build(0,n,k,1); 6 return res; 7 } 8 void build(int dep, int n, int k,int start){ 9 if(dep==k){ 10 res.push_back(v); 11 return; 12 } 13 for(int i=start;i<=n;i++){ 14 v[dep]=i; 15 build(dep+1,n,k,i+1); 16 } 17 18 } 19 vector<int> v; 20 vector<vector<int>> res; 21 };
联系方式:emhhbmdfbGlhbmcxOTkxQDEyNi5jb20=