美文网首页
216. 组合总和 III

216. 组合总和 III

作者: scriptllh | 来源:发表于2019-02-25 10:45 被阅读0次
找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。

说明:

所有数字都是正整数。
解集不能包含重复的组合。
示例 1:

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

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

func combinationSum3(k int, n int) [][]int {
    if k == 0 || n == 0{
        return [][]int{}
    }
    res := [][]int{}
    taken := make(map[int]bool,10)
    tmp := make([]int,k+1)
    var helper func(index int,n int)
    helper = func(index int,n int){
        if index == k+1 {
            if n == 0{
                 t := make([]int,k)
                 copy(t,tmp[1:])
                 res = append(res,t)
            }
            return
        }
    
        for i := tmp[index-1] + 1; i <= 9 ;i++{
            if !taken[i]{
                taken[i] = true
                tmp[index] = i
                helper(index+1,n-i)
                taken[i] = false
            }
        }
    }
    helper(1,n)
    return res
}

相关文章

  • 216. 组合总和 III

    找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字...

  • 216. 组合总和 III

    找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字...

  • 216. 组合总和 III

    典型的回溯题

  • backtracking——216. 组合总和 III

    这道题里面没有重复的元素,但是给了一个所有组合的个数,所以在判断的时候,我们不仅需要判断target还要判断个数是...

  • 递归与回溯:216.组合总和III

    /** 题目 找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不...

  • 216 组合总和 III

    题目: 找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重...

  • 2019-01-26

    LeetCode 216. Combination Sum III Description Find all po...

  • 递归与排列组合

    216. Combination Sum III(https://leetcode.com/problems/co...

  • 216. Combination Sum III

    216. Combination Sum III Total Accepted: 38518Total Submi...

  • LeetCode216. 组合总和 III

    https://blog.csdn.net/Jaster_wisdom/article/details/81904572

网友评论

      本文标题:216. 组合总和 III

      本文链接:https://www.haomeiwen.com/subject/emewyqtx.html