排列组合Leetcode Combinations
2013-05-14 22:55
10 查看
n个数取k个的集合
自己写的代码:
参考代码
自己写的代码:
class Solution { public: vector<int>v1; vector<vector<int>>v; vector<vector<int>> combine(int n, int k) { v.clear(); vector<int>exist(n,0); add(exist,n,k,0); return v; } void add(vector<int>&exist,int n,int k,int cur) { if(cur<n) { exist[cur]=1; add(exist,n,k,cur+1); exist[cur]=0; add(exist,n,k,cur+1); } if(cur==n&&count(exist.begin(),exist.end(),1)==k) { v1.clear(); for(int i=0;i<n;i++) { if(exist[i]==1) v1.push_back(i+1); } v.push_back(v1); //return; } } };
参考代码
class Solution { private: vector<vector<int> > ret; vector<int> a; public: void solve(int dep, int maxDep, int n, int start) { if (dep == maxDep) { ret.push_back(a); return; } for(int i = start; i <= n; i++) { a[dep] = i; solve(dep + 1, maxDep, n, i + 1); } } vector<vector<int> > combine(int n, int k) { a.resize(k); ret.clear(); solve(0, k, n, 1); return ret; } };
相关文章推荐
- 排列组合与集合的C语言实现相关
- “金箍咒”我的全排列组合算法设计演化之三无限嵌套
- 排列组合的代码总结篇
- UVA - 557 Burger 排列组合 概率
- [leetcode 46] Permutations------数组中元素的所有排列组合集合
- 对一组数据做无序排列(组合)的简单实现
- 排列与组合的Java递归实现
- 【BestCoder Round #77 (div.2)】xiaoxin juju needs help(排列与组合)
- HDU 5651(排列组合,逆元)
- 字符串的排列组合问题
- 求全排列和组合
- [经典面试题]排列组合专题
- STL算法 -------- 排列组合
- TODO:排列组合问题:n个数中取m个
- 母函数与排列组合
- C#实现排列组合算法
- 字符串的全排列和组合算法
- 排列组合数C(m,n)的O(n)算法
- codeforces-#478B. Random Teams 排列组合
- 【Java中 任意几个数字获取其所有的排列组合】