题目描述:给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。
解题思路:也是利用回溯的方法,只是组合这里回溯的是是否把当前元素加入结果中,代码如下:
class Solution:
def combine(self, n: int, k: int) -> List[List[int]]:
comb = [0] * k
res = []
def traceback(i, index):
if index == k:
res.append(comb[:])
return
for j in range(i, n+1):
comb[index] = j
traceback(j+1, index+1)
traceback(1, 0)
return res