题目
给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。
链接:https://leetcode.com/problems/combinations/
Given two integers n and k, return all possible combinations of k numbers out of 1 … n.
Example:
Input: n = 4, k = 2
Output:
[
[2,4],
[3,4],
[2,3],
[1,2],
[1,3],
[1,4],
]
思路及代码
DFS
- 同39,40,78,90,216题
class Solution:
def combine(self, n: int, k: int) -> List[List[int]]:
cur = []
ans = []
def dfs(length, start, cur, ans):
if length == 0:
ans.append(cur.copy())
return
for i in range(start, n+1):
cur.append(i)
dfs(length-1, i+1, cur, ans)
cur.pop()
dfs(k, 1, cur, ans)
return ans