leetcode刷题-77组合
题目
给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。
示例:
输入: n = 4, k = 2
输出:
[
[2,4],
[3,4],
[2,3],
[1,2],
[1,3],
[1,4],
]
思路
回溯法
实现
class Solution: def combine(self, n: int, k: int) -> List[List[int]]: num = [i for i in range(1, n+1)] tmp = [] result = [] def com(idx, bef, aft): if len(aft) == k: result.append(aft) else: for i in bef: index = bef.index(i) com(index, bef[(index+1):], aft+[i]) com(0, num, tmp) return result