题目描述
给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。
示例:
实现思路
这道题目运用到了普通的回溯剪枝以及深度优先遍历。
原本应该是这样的:
我们可以看到,里面有很多的重复项,所以可以对其进行剪枝操作,即每次递归时开始数+1,剪枝之后就变成了这样:
然后继续进行递归操作,当保存路径的数组的长度和k相等是就将结果保存在结果中,并进行回溯操作。
代码实现
提交结果
给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。
示例:
这道题目运用到了普通的回溯剪枝以及深度优先遍历。
原本应该是这样的:
我们可以看到,里面有很多的重复项,所以可以对其进行剪枝操作,即每次递归时开始数+1,剪枝之后就变成了这样:
然后继续进行递归操作,当保存路径的数组的长度和k相等是就将结果保存在结果中,并进行回溯操作。
【LeetCode】39. 组合总和
【LeetCode】705. 设计哈希集合
【LeetCode】706. 设计哈希映射
我们社区陆续会将顾毅(Netflix 增长黑客,《iOS 面试之道》作者,ACE 职业健身教练。)的 Swift 算法题题解整理为文字版以方便大家学习与阅读。
【LeetCode 49】77.组合文章目录【LeetCode 49】77.组合一、题意二、解答过程
举报文章
请选择举报类型
补充说明
0/200
上传截图
格式支持JPEG/PNG/JPG,图片不超过1.9M