题目链接:https://leetcode-cn.com/problems/combinations/
题目描述
思路
1 回溯
回溯法 是一种通过遍历所有可能成员来寻找全部可行解的算法。若候选 不是 可行解 (或者至少不是 最后一个 解),回溯法会在前一步进行一些修改以舍弃该候选,换而言之, 回溯 并再次尝试。
这是一个回溯法函数,它将第一个添加到组合中的数和现有的组合作为参数。 combineCore(start, curr)
- 若组合完成- 添加到输出中。
- 遍历从 start 到 n的所有整数。
- ( a ) 将整数 i 添加到现有组合 curr中。
- ( b ) 继续向组合中添加更多整数 : combineCore(start + 1, curr).
- ( c ) 将 i 从 curr中移除,实现回溯。
复杂度分析
- 时间复杂度: O ( k C N k ) O\left(k C_{N}^{k}\right) O(kCNk)<