剑指 Offer II 080. 含有 k 个元素的组合 #
- 标签:数组、回溯
- 难度:中等
题目大意 #
给定两个整数 n
和 k
。
要求:返回范围 [1, n]
中所有可能的 k
个数的组合。可以按任何顺序返回答案。
解题思路 #
组合问题通常可以用回溯算法来解决。定义两个数组 res
、path
。res
用来存放最终答案,path
用来存放当前符合条件的一个结果。再使用一个变量 start_index
来表示从哪一个数开始遍历。
定义回溯方法,start_index = 1
开始进行回溯。
- 如果
path
数组的长度等于k
,则将path
中的元素加入到res
数组中。 - 然后对
[start_index, n]
范围内的数进行遍历取值。- 将当前元素
i
加入path
数组。 - 递归遍历
[start_index, n]
上的数。 - 将遍历的
i
元素进行回退。
- 将当前元素
- 最终返回
res
数组。
代码 #
|
|