大家好,欢迎来到《LeetCode趣味解题:算法也能这么玩》!今天我们要讨论的是第77题——组合。这道题目要求我们从 1
到 n
的数字中选择 k
个数字的所有可能组合。想象一下,这是在一个水果篮中挑选你最喜欢的 k
种水果,不同的组合方式让人眼花缭乱,但我们要找到所有可能的搭配。
文章目录
题目描述
给定两个整数 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]]
方法一:递归回溯法
思路
递归回溯法是一种经典的组合问题解法,就像是在一个树状图中探索所有可能的路径。我们在每个节点选择或者不选择当前数字,直到找到所有符合条件的组合。
代码实现
import