思路
效果
测试又抽风了,右下角测试用例和它内部测试结果居然不一样
代码
ret=[]
def func(nums,l,k,array):
if len(array)==k:
#原写法:ret.append(array)
#在主函数中直接返回ret即可,而不是像我那样再次将ret切分
#但是这么写之后,ret并拿不到array数组,可能是局部空间的原因(用完即收)
for i in array:
ret.append(i)
elif l<len(nums):
array.append(nums[l])
func(nums,l+1,k,array)
array.pop()
func(nums,l+1,k,array)
class Solution:
def combine(self, n: int, k: int) -> List[List[int]]:
nums=[]
for i in range(1,n+1):
nums.append(i)
array=[]
func(nums,0,k,array)
array0=[]
for i in range(int(len(ret)/k)):
array0.append(ret[i*k:(i+1)*k])
return array0