leetcode-77 Combinations
来源:互联网 发布:淘宝口令在线生成器 编辑:程序博客网 时间:2024/06/06 12:50
这题是组合问题,与排列问题(permutation)有些不一样,不过大体思路是一样的,dfs里面套着一个循环
<span style="font-family:Microsoft YaHei;font-size:14px;">class Solution {public: vector<vector<int> > combine(int n, int k) { vector<vector<int> > res; vector<int> tmpres; if(k <=0 || n <= 0 || k > n) return res; dfs(res,tmpres,1,n,0,k); return res; } void dfs(vector<vector<int> > &res,vector<int> &tmpres,int index,int n,int num,int k){ if(num == k){ res.push_back(tmpres); return; } for(int i = index; i <= n; i++){ tmpres.push_back(i); dfs(res,tmpres,i+1,n,num+1,k); tmpres.pop_back(); } }};</span>
这个博主的博客上的有leetcode的几乎所有解答,比较有参考价值(不过是用java写的)
原题链接: http://oj.leetcode.com/problems/combinations/
这道题是NP问题的题目,时间复杂度没办法提高,用到的还是N-Queens中的方法:用一个循环递归处理子问题。实现的代码跟Combination Sum非常类似而且更加简练,因为不用考虑重复元素的情况,而且元素只要到了k个就可以返回一个结果。
NP问题在LeetCode中出现的频率很高,例如N-Queens,Sudoku Solver,Combination Sum,Permutations等等。不过这类题目都是用一种方法而且也没有办法有时间上的提高,所以还是比较好掌握的。
0 0
- LeetCode 77 Combinations
- [leetcode 77] Combinations
- Leetcode NO.77 Combinations
- [leetcode] 77 Combinations
- [LeetCode 77]Combinations
- leetcode || 77、Combinations
- leetcode-77 Combinations
- LeetCode-77 Combinations(组合)
- Combinations - LeetCode 77
- leetcode 77:Combinations
- LeetCode(77) Combinations
- Leetcode #77 Combinations
- [leetcode-77]Combinations(java)
- leetcode 77: Combinations
- LeetCode(77) Combinations
- 【leetcode】【77】Combinations
- leetcode 77:Combinations
- 【LEETCODE】77-Combinations [Python]
- 页面中时间范围的提醒。
- BZOJ2216【决策单调性】
- Python与Java之间的相互调用——Jython
- C++运算符重载简单练习 写一个Integer包装类
- PAT素数对猜想
- leetcode-77 Combinations
- java自学笔记————通过反射来获取注解的信息;
- Intent.ACTION_VIEW
- 深入了解Delphi 7中的四种消息框
- 运行多个tomcat实例两法
- RACLE 找回被truncate的表
- 设计包含min函数的栈(栈)
- Javascript面向对象编程(三):非构造函数的继承
- L2---net_device---dev_addr, multicast, unicast, promiscuity: net_device的各种L2 address配置