LeetCode——组合
发布日期:2021-09-23 21:27:19 浏览次数:8 分类:技术文章

本文共 569 字,大约阅读时间需要 1 分钟。

题目描述

给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。

示例:

输入: n = 4, k = 2输出:[  [2,4],  [3,4],  [2,3],  [1,2],  [1,3],  [1,4],]

题解

package mainimport "fmt"func main() {
fmt.Print(combine(4, 2))}func combine(n int, k int) (ans [][]int) {
tmp := []int{
} var dfs func(int) dfs = func(cur int) {
// 剪枝 if len(tmp)+(n-cur+1) < k {
return } if len(tmp) == k {
comb := make([]int, k) copy(comb, tmp) ans = append(ans, comb) return } // 选择当前位置 tmp = append(tmp, cur) dfs(cur + 1) // 不选择当前位置 tmp = tmp[:len(tmp)-1] dfs(cur + 1) } dfs(1) return}

转载地址:https://blog.csdn.net/bodhiye/article/details/109301632 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Linux netstat 命令
下一篇:Linux lsof 命令

发表评论

最新留言

做的很好,不错不错
[***.243.131.199]2024年04月11日 09时59分35秒