这是一道 「中等难度」 的题
https://leetcode.cn/problems/combinations/

题目

给定两个整数 nk,返回范围 [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([]intlen(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余数



微信扫描下方的二维码阅读本文

此作者没有提供个人介绍
最后更新于 2023-06-19