LeetCode讲解篇之77. 组合

文章目录

题目描述

题解思路

遍历nums,让当前数字添加到结果前缀中,递归调用,直到前缀的长度为k,然后将前缀添加到结果集

题解代码

go 复制代码
func combine(n int, k int) [][]int {
    var nums = make([]int, n)
    for i := n; i > 0; i-- {
        nums[i-1] = i
    }
    var res = make([][]int, 0)
    var dfs func(prefix []int, nums []int, k int)
    dfs = func(prefix []int, nums []int, k int) {
        if k == 0 {
            tmp := make([]int, len(prefix))
            copy(tmp[:], prefix[:])
            res = append(res, tmp)
            return
        }
        for i := 0; i <= len(nums) - k; i++ {
            dfs(append(prefix, nums[i]), nums[i+1:], k-1)
        }
    }
    dfs(make([]int, 0, k), nums, k)
    return res
}
相关推荐
小宇的天下9 分钟前
Calibre LVS Circuit Comparison(2)
算法·lvs
迈巴赫车主35 分钟前
求最大公约数-欧几里得算法(辗转相除法)
算法·最大公约数
测试199842 分钟前
Python+Excel读取和存储测试数据完成接口自动化测试
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
lxl13071 小时前
C++算法(15)BFS_FloodFill
算法·宽度优先
小王C语言1 小时前
【基础IO】————简单设计一下libc库
前端·数据结构·算法
亦复何言??1 小时前
BeyondMimic 论文解析
人工智能·算法·机器人
WolfGang0073211 小时前
代码随想录算法训练营 Day20 | 回溯算法 part02
算法
YXXY3131 小时前
前缀和算法
算法
客卿1231 小时前
滑动窗口--模板
java·算法
_日拱一卒1 小时前
LeetCode:滑动窗口的最大值
数据结构·算法·leetcode