❝
这是一道 「中等难度」 的题
https://leetcode.cn/problems/combinations/❞
题目
给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。
你可以按 「任何顺序」 返回答案。
示例 1:
var ans [][]int
var subSet []int
func combine(n int, k int) [][]int {
subSet = []int{}
ans = [][]int{}
recursion(1, n, k)
return ans
}
func recursion(i int, n int, k int) {
if k == len(subSet) {
temp := make([]int, len(subSet))
copy(temp, subSet)
ans = append(ans, temp)
return
}
if (len(subSet) + (n - i + 1)) < k {
return
}
// 不选
recursion(i + 1, n, k)
// 选
subSet = append(subSet, i)
recursion(i + 1, n, k)
subSet = subSet[:len(subSet) - 1]
}
- End -
本篇文章来源于微信公众号: i余数
微信扫描下方的二维码阅读本文

Comments NOTHING