代码编织梦想

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/combination-sum-iii


题意:

找出所有相加之和为 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]]


参考文章

思路:

其实要是做了《LeetCode 77 组合》这道题,本题其实是更加容易的。建议把这道题《LeetCode 77 组合》做一下就可以了,都是使用回溯法且做了简单的剪枝。

本题的剪枝体现在for循环中sum+i<=n这个条件语句上。

本题Java代码:

class Solution {
    int sum;
    List<List<Integer>> ans = new ArrayList<>();
    LinkedList<Integer> path = new LinkedList<>();
    private void backTracking(int k, int n, int start) {
        if (path.size() == k) {
            if (sum == n) ans.add(new ArrayList<>(path));
            return;
        }
        for (int i = start; i <= 9 && sum + i <= n; i++) {
            path.add(i);
            sum += i;
            backTracking(k, n, i + 1);
            sum -= i;
            path.removeLast();
        }
    }
    public List<List<Integer>> combinationSum3(int k, int n) {
        backTracking(k, n, 1);
        return ans;
    }
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/QQ1149646297/article/details/122949422

leetcode——深度优先搜索应用(组合总数3)_cj_geek的博客-爱代码爱编程

找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有1 - 9的正整数,并且每种组合中不存在重复的数字。 说明: 所有数字都是正整数。 解集不能包含重复的组合。 示例 1: 输入: k = 3, n =

leetcode-【数组】- 组合总和 iii_唐大大威的博客-爱代码爱编程

找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。 说明: 所有数字都是正整数。解集不能包含重复的组合。  示例 1: 输入: k = 3, n = 7 输出: [[1,2,4]] 示例 2: 输入: k = 3, n = 9 输出: [[1,2,6], [1,3,5], [2,

一天一道算法题——216. 组合总和 iii_sealove520的博客-爱代码爱编程_c语言找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,

题目描述 找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。 说明: 所有数字都是正整数。 解集不能包含重复的组合。 示例 1: 输入: k = 3

leetcode第216题--组合总和iii_king3wade的博客-爱代码爱编程_c++找出所有相加之和为n的k个数的组合,组合中只允许含有1~9的正整数c++

找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。 说明: 所有数字都是正整数。 解集不能包含重复的组合。 示例 1: 输入: k = 3, n = 7

python 找出所有相加之和为n的k个组合,组合中只允许含有1-9的正整数,并且每种组合中不存在重复的数字。_秋天の的博客-爱代码爱编程_python和为n的所有组合

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

Leetcode刷题笔记(Python 找出所有相加之和为n的k个组合,组合中只允许含有1-9的正整数,并且每种组合中不存在重复的数字。)...-爱代码爱编程

eg:输入:k=3,n=9         输出: [[1,2,6],[1,3,5],[2,3,4]]         输入:k=2,n=5         输出:[[1,4][2,3]] 1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 """ 4 # @Time

leetcode 面试题216. 组合总和 III-爱代码爱编程

2020/3/20  打卡 题目 找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。 说明: 所有数字都是正整数。 解集不能包含重复的组合。 示例 1: 输入: k = 3, n = 7 输出: [[1,2,4]] 示例 2: 输入: k = 3, n = 9 输出: [[1,2

leetcode--216组合总和三-爱代码爱编程

找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。 说明: 所有数字都是正整数。 解集不能包含重复的组合。 示例 1: 输入: k = 3, n = 7 输出: [[1,2,4]] 示例 2: 输入: k = 3, n = 9 输出: [[1,2,6], [1,3,5],

leetcode216.组合总和3-爱代码爱编程

题目大意 找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。 说明: 所有数字都是正整数。解集不能包含重复的组合。示例 1: 输入: k = 3, n = 7 输出: [[1,2,4]] 示例 2: 输入: k = 3, n = 9 输出: [[1,2,6], [1,3,5],

力扣小白刷题之216题组合总和Ⅲ-爱代码爱编程

题目描述 找出所有相加之和为n 的 k 个数的组合。组合只允许含有 1-9 的正整数,并且每种组合中不存在重复的数字。 思路 参考自:https://leetcode-cn.com/problems/combination-sum-iii/solution/hui-su-jian-zhi-by-liweiwei1419/ 画图分析,看清剪枝和结算的

每日一题 :组合总和 III(中等)-爱代码爱编程

216. 组合总和 III 找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。 说明: 所有数字都是正整数。 解集不能包含重复的组合。 示例 1: 输入: k = 3, n = 7 输出: [[1,2,4]] 示例 2: 输入: k = 3, n

2020_9_11 每日一题 组合总和 III-爱代码爱编程

找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。 说明: 所有数字都是正整数。 解集不能包含重复的组合。 示例 1: 输入: k = 3, n = 7 输出: [[1,2,4]] 示例 2: 输入: k = 3, n = 9 输出: [[1,2,6], [1,3,5]

216. 组合总和 III(每日一题)-爱代码爱编程

1、题目 找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。 说明:     所有数字都是正整数。     解集不能包含重复的组合。 示例 1: 输入: k = 3, n = 7 输出: [[1,2,4]] 示例 2: 输入: k = 3, n = 9 输出: [[1,2,6]

leetcode-216. 组合总和 III-爱代码爱编程

找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。 说明: 所有数字都是正整数。 解集不能包含重复的组合。  示例 1: 输入: k = 3, n = 7 输出: [[1,2,4]] 示例 2: 输入: k = 3, n = 9 输出: [[1,2,6], [1,3,5], [2

【回溯】【leetcode】找出所有相加之和为 n 的 k 个数的组合-爱代码爱编程

题目: 找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。 说明: 所有数字都是正整数。解集不能包含重复的组合。 例: 输入: k = 3, n = 7 输出: [[1,2,4]] 来源: 216. 组合总和 III 解题思路:回溯 继续学习回溯的思想,本题与 上一篇(所有组

leetcode 216 组合总和iii -爱代码爱编程

找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。 说明: 所有数字都是正整数。 解集不能包含重复的组合。 示例 1: 输入: k = 3, n = 7