组合
给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合
示例, n=4, k=2
递归回溯,剪枝
再递归遍历的时候,从1开始,进行组合,1用过之后,下一层遍历则排除1,234进行递归,手动控制递归范围,进行剪枝
1 | func combine(n int, k int) [][]int { |
空间复杂度O(n)
时间复杂度O(
(k
n)×k)
给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合
示例, n=4, k=2
再递归遍历的时候,从1开始,进行组合,1用过之后,下一层遍历则排除1,234进行递归,手动控制递归范围,进行剪枝
1 | func combine(n int, k int) [][]int { |
空间复杂度O(n)
时间复杂度O(
(k
n)×k)