Combinations
来源:互联网 发布:专业软件开发学院 编辑:程序博客网 时间:2024/04/30 10:12
Combinations
Given two integers n and k, return all possible combinations ofk 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-n中选k个,所有组合的可能。
分析:一看就是dfs的题目,可惜还是不熟悉,调了很久。从1...n开始取,满了k个,就push到结果结合中,然后再后移一位,继续取。
代码:
class Solution {public: vector<vector<int> > combine(int n, int k) { vector<vector<int> > res; if(n<k) return res; vector<int> one; dfs(res,one,k,n,0); return res; } void dfs(vector<vector<int> > &res,vector<int> &one, int k, int n, int index){ if(one.size()==k){//这里的判断条件不能用index==k 因为index决定了下一个push进one的元素,会出现重复 res.push_back(one); return; } for(int i=index;i<n;i++){ one.push_back(i+1); dfs(res,one,k,n,i+1);//i+1 保证下一个push的值比前一个 大 one里边是升序排列(2,3)(2,4) one.pop_back(); } } };
0 0
- Combinations
- Combinations
- Combinations
- Combinations
- Combinations
- Combinations
- Combinations
- Combinations
- Combinations
- Combinations
- Combinations
- Combinations
- Combinations
- combinations
- Combinations
- Combinations
- Combinations
- Combinations
- 数组指针和指针数组的区别
- xml的一个内部透明,带边框的背景,可用于按钮之类
- 源码剖析Iterator接口遍历和直接for-get组合遍历的区别
- Linux下SCP命令不输入密码(免密码)备份
- java中字符窜与16进制,byte之间的转换
- Combinations
- ajax解析返回数据
- MongoDB应用实践思考
- makefile 终极模板文件。此文在手,编译我有!
- 『IOS』ios 获取屏幕的属性和宽度
- Struts2嵌入式部署FineReport报表开发
- View工作原理【动画概述】
- boost源码剖析之:泛型函数指针类
- Blender 的使用