Combinations
来源:互联网 发布:剪切歌曲软件 编辑:程序博客网 时间:2024/06/03 16:37
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],]解析:
1. 使用递归方法,comb表示从begin位置的k个数的组合
2. 使用bit方法,对于2的n次方个数,判断每个数中1的个数是不是k,如果是K则返回对应的组合。
代码:
class Solution {public: vector<vector<int>> combine(int n, int k) { vector<vector<int>>ans; vector<int>path; comb(n,ans,path,1,k); return ans; } void comb(int n,vector<vector<int>>&ans,vector<int>&path,int begin,int k) { if (path.size()==k) { ans.push_back(path); return ; } for (int i=begin; i<=n; i++) { path.push_back(i); comb(n,ans,path,i+1,k); path.pop_back(); } return ; } };
class Solution {public: vector<vector<int>> combine(int n, int k) { vector<vector<int>>ans; int numcnt=pow(2,n); for (int i=0; i<numcnt; i++) { if (Numberof1(i)!=k) continue; vector<int>path; for (int j=0; j<n; j++) { if ((i>>j)&1) { path.push_back(j+1); } } ans.push_back(path); } return ans; } int Numberof1(int n) { int count=0; while (n) { count++; n=n&(n-1); } return count; }}
0 0
- Combinations
- Combinations
- Combinations
- Combinations
- Combinations
- Combinations
- Combinations
- Combinations
- Combinations
- Combinations
- Combinations
- Combinations
- Combinations
- combinations
- Combinations
- Combinations
- Combinations
- Combinations
- fragment-activitys
- Hive中小表与大表关联(join)的性能分析
- Anaconda Navigator打不开
- HashMap内存泄露
- memset函数分析
- Combinations
- linux编程手册读书笔记第一章(20140329)
- highchart图表drilldown钻取功能及event点击事件添加--补充钻取多图显示(2)
- 图标字体(代码演示)
- ECMAScript函数参数
- 使用第三方平台短信接口实现发送验证码
- CST STUDIO SUITE 2017 SP1 Win32_64-ISO 1DVD
- 【脚本语言系列】关于Python统计分析statsmodel,你需要知道的事
- SDN南向接口和北向接口