题目简介
给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。
你可以按 任何顺序 返回答案。
初见思路
77.运用回溯算法经典模板就可以快速拼凑出所有组合。
class Solution:
def combine(self, n: int, k: int) -> List[List[int]]:
if n == 1:
return [[1]]
nums = list(range(n+1))
ans,comb = list(),list()
def back_tracking(nums,idx,k):
if len(comb) == k:
ans.append(list(comb))
return
for i in range(idx,n+1):
comb.append(nums[i])
back_tracking(nums,i+1,k)
comb.pop()
back_tracking(nums,1,k)
return ans
复盘思路
https://programmercarl.com/0077.%E7%BB%84%E5%90%88.html