leetcode:77.组合

77. 组合

来源:力扣(LeetCode)

链接: https://leetcode.cn/problems/combinations
给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。

你可以按 任何顺序 返回答案。

示例 1:

输入:n = 4, k = 2
输出:
[
  [2,4],
  [3,4],
  [2,3],
  [1,2],
  [1,3],
  [1,4],
]

示例 2:

输入:n = 1, k = 1
输出:[[1]]

提示:

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

解法

  • 递归: 将结果划分为两部分,每次取前面的1个元素,后面的元素结果使用递归生成,再遍历后面的元素结果,将前面的1个元素拼接进去,作为最终结果;前面一个元素的个数为(n-k+1), 因为本题不考虑顺序。

  • 回溯法:每次从集合中选取元素,可选择的范围随着选择的进行而收缩,调整可选择的范围。回溯三部曲:

    • 递归函数的返回值以及参数&

你可能感兴趣的:(编程练习-Leetcode,leetcode,回溯法,算法训练,递归,组合)