classSolution(object):defcombine(self,n,k):""" :type n: int :type k: int :rtype: List[List[int]] """self.result=[]l=list(range(1,n+1))foriinrange(n):self.createcombine([l[i]],l[i+1:],k)returnself.resultdefcreatecombine(self,pre,cur,k):iflen(pre)==kandprenotinself.result:self.result.append(pre)else:foriinrange(len(cur)):copypre=pre[:]+[cur[i]]self.createcombine(copypre,cur[i+1:],k)# method2# if k == 0:# return [[]]# return [pre + [i] for i in range(1, n + 1) for pre in self.combine(i - 1, k - 1)]# method3# from itertools import combinations# return list(combinations(range(1, n + 1), k))if__name__=="__main__":answer=Solution()printanswer.combine(20,16)
近期评论