【一天一道LeetCode】#77. Combinations
来源:互联网 发布:好听的网络歌曲2015 编辑:程序博客网 时间:2024/04/27 14:15
一天一道LeetCode
本系列文章已全部上传至我的github,地址:ZeeCoder‘s Github
欢迎大家关注我的新浪微博,我的新浪微博
欢迎转载,转载请注明出处
(一)题目
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,从1~n中找出所有k个数的组合。
这题是典型的回溯问题。分析一下当n=4,k=3的情况:
维持一个vector变量,当它的长度小于3时,按顺序往里面放数字。
第一个满足长度等于3的组合为1,2,3,接下来回溯弹出3,继续放数字4
第二个满足长度等于3的组合为1,2,4,然后回溯弹出4,没有数字放了,就继续回溯弹出2,再放入3和4
第三个满足长度等于3的组合为1,3,4,然后回溯弹出3,4和1,放入2,3,4
第四个满足长度等于3的组合为2,3,4。至此,算法结束。
class Solution {public: vector<vector<int>> ret; vector<vector<int>> combine(int n, int k) { vector<int> temp; dfscombine(n,1,k,temp); return ret; } void dfscombine(int n,int start,int k,vector<int> & temp) { if(temp.size()==k){//当长度为k时,将结果存在ret中 ret.push_back(temp); return; } for(int i = start ; i <= n ; i++) { temp.push_back(i);//放入数字 dfscombine(n,i+1,k,temp); temp.pop_back();//回溯到上一步 } }};
0 0
- 【一天一道LeetCode】#77. Combinations
- 【一天一道LeetCode】#17. Letter Combinations of a Phone Number
- 一天一道leetcode
- 【一天一道LeetCode】#46. Permutations
- 【一天一道LeetCode】#78. Subsets
- 【一天一道LeetCode】#120. Triangle
- LeetCode 77. Combinations
- [LeetCode]77.Combinations
- LeetCode --- 77. Combinations
- [Leetcode] 77. Combinations
- [leetcode] 77.Combinations
- leetCode 77.Combinations (组合)
- [leetcode] 77. Combinations
- 77. Combinations LeetCode
- <LeetCode OJ> 77. Combinations
- [LeetCode]77. Combinations
- leetcode 77. Combinations
- LeetCode *** 77. Combinations
- 【论文写作】如何写出一篇好的学术论文?
- 安卓着色器(tint)使用实践。
- 关于callback函数
- Eclipse SVN在线安装
- 获取日期和时间
- 【一天一道LeetCode】#77. Combinations
- DevExpress PictrueEdit 实现图片 剪裁 , 缩放 , 压缩大小 效果
- Activity持有多个Fragment的跳转和回退实现方案
- iptables用法总结
- jsp页面中jstl标签详解
- jquery批量提交表单值 和批量设置表单值
- (4.2.12.3)浅谈第三方推送[bug查询]:百度推送、小米推送、华为推送
- Python Flask Web 第三课 —— 模板
- 如何彻底的删除MySQL数据库(图文教程)