[leetcode] 77. Combinations

题目

Given two integers n and k, return all possible combinations of k numbers out of the range [1, n].

You may return the answer in any order.

Example 1:

Input: n = 4, k = 2
Output:
[
  [2,4],
  [3,4],
  [2,3],
  [1,2],
  [1,3],
  [1,4],
]

Example 2:

Input: n = 1, k = 1
Output: [[1]]

Constraints:

  • 1 <= n <= 20
  • 1 <= k <= n

思路

递归向数组中追加值,数组满时填入list中。

代码

python版本:

class Solution:
    def combine(self, n: int, k: int) -> List[List[int]]:
        res = []

        def recursion(l, nums):
            if len(nums) == k:
                res.append(copy.deepcopy(nums))
                return
            for i in range(l, n+1):
                nums.append(i)
                recursion(i+1, nums)
                nums.pop()
        recursion(1, [])
        return res

posted @ 2022-03-08 15:14  frankming  阅读(16)  评论(0编辑  收藏  举报