Given two integers n and k, return all possible combinations ofk numbers out of 1 ... n.
For example,
If n = 4 and k = 2, a solution is:
[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4], ]
class Solution: def __init__(self): self.lists = [ ] def doCombine(self, list, n, m, k): if 0 == k: self.lists.append(list) return if m > n: return self.doCombine(list[:], n, m + 1, k) new_list = list new_list.append(m) self.doCombine(new_list, n, m + 1, k - 1) # @return a list of lists of integers def combine(self, n, k): if k > n: return [ ] self.doCombine([ ], n, 1, k) return self.lists