给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。
示例:
输入: n = 4, k = 2
输出:
[
[2,4],
[3,4],
[2,3],
[1,2],
[1,3],
[1,4],
]
思路
两种情况,要么用了n,要么不用n
两种结果全部统计即可
代码
def combine(self, n, k):
l=[]
if(n==k):
for i in range(1,n+1):
l.append(i)
return [l]
if(k==1):
for i in range(1,n+1):
l.append([i])
return l
a=self.combine(n-1,k-1)#用了数字n(最大到n-1,k-1个位置)
b=self.combine(n-1,k)#不用数字n(最大到n-1,k个位置)
for i in a:
l.append([n]+i)
l=l+b
return l