给定两个整数 n 和 k ,返回 1 … n 中所有可能的 k 个数的组合。
示例:
输入: n = 4, k = 2
输出:
[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4]]
def fn(n,k):
pass
assert fn(4,2)== [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4]]
来源:力扣
给定两个整数 n 和 k ,返回 1 … n 中所有可能的 k 个数的组合。
示例:
输入: n = 4, k = 2
输出:
[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4]]
def fn(n,k):
pass
assert fn(4,2)== [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4]]
来源:力扣
temp = []
ans = []
def fn(n, k, cur=0):
if len(temp) == k:
ans.append(temp.copy())
return
if cur == n:
return
# 选取当前位置
temp.append(cur + 1)
fn(n, k, cur + 1)
temp.pop()
# 不选取当前位置
fn(n, k, cur + 1)
print(fn(4, 2))
copy一个枚举
import itertools
def fn(n, k):
return [list(item) for item in itertools.combinations(range(1, n+1),k)]
assert fn(4,2)== sorted([[2,4],[3,4],[2,3],[1,2],[1,3],[1,4]])