给定两个整数 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]]:
res=[];
def run(re,k,start):
if k==0:
res.append(re+[]);
else:
for i in range(start,n+1):
re.append(i);
run(re,k-1,i+1);
re.pop();
run([],k,1);
return res;
combine(4,2)
没有相同的数换了位置的情况
[[1,2],[1,3],[1,4],[2,3],[2,4],[3,4]]
Or
def combine( n: int, k: int):
res=[];
def run(re,h,start):
if h==k:
res.append(re+[]);
return;
for i in range(start,n+1):
re.append(i);
run(re,h+1,i+1);
re.pop();
run([],0,1);
return res;
print(combine(4,2))