LeetCode216:Combination Sum III

原创 2015年07月06日 21:36:01

Find all possible combinations of k numbers that add up to a number n, given that only numbers from 1 to 9 can be used and each combination should be a unique set of numbers.

Ensure that numbers within the set are sorted in ascending order.

Example 1:

Input: k = 3, n = 7

Output:

[[1,2,4]]

Example 2:

Input: k = 3, n = 9

Output:

[[1,2,6], [1,3,5], [2,3,4]]

这道题就相当于前面 Combination Sum II 中candidates这个数组是由1-9这9个数字组成的数组,并且对路径的长度做了要求,路径的长度是k,解题思路还是一样的。
runtime:0ms

class Solution {
public:
    vector<vector<int>> combinationSum3(int k, int n) {
        vector<int> path;
        vector<vector<int>> result;
        helper(k,n,0,1,path,result);
        return result;
    }

    void helper(int k,int target,int base,int pos,vector<int> & path,vector<vector<int>> &result)
    {
        if(k==0&&base==target)
        {
            result.push_back(path);
            return ;
        }
        if(k<0||base>target)
            return ;
        for(int i=pos;i<=9;i++)
        {
            path.push_back(i);
            helper(k-1,target,base+i,i+1,path,result);
            path.pop_back();
        }
    }
};

相关文章推荐

leetcode 216. Combination Sum III

class Solution { void do_once(int k,int n, map, int>&candi) { map, int>newcandi; for (map, int...

LeetCode #216 - Combination Sum III - Medium

Combination Sum Series Combination Sum I: Combination Sum II: Combination Sum III: Pr...
  • Arcome
  • Arcome
  • 2016年12月20日 07:56
  • 341

leetcode-java-216. Combination Sum III

/* Given a set of candidate numbers (C) and a target number (T), find all unique combinations in C w...

<LeetCode OJ> 39 / 40 / 216 Combination Sum(I / II / III)

Total Accepted: 83289 Total Submissions: 274461 Difficulty: Medium Given a set of candidate num...

LeetCode216:Combination Sum III

从1-9中取k个数和为n,且数不重复。首先可能想到的是用一个boolean数组记录用过的数字,Boolean数组的下标+1即为数字。但这题我们发现,选取的数组是递增的,所以无需使用一个数组记录使用过的...

216 Combination Sum III [Leetcode]

题目内容: Find all possible combinations of k numbers that add up to a number n, given that only numbe...

【LeetCode-面试算法经典-Java实现】【216-Combination Sum III (组合数的和)】

【216-Combination Sum III (组合数的和)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】代码下载【https://github.com/Wang-Jun-...

LeetCode 216 Combination Sum III(Backtracking)(*)

翻译找出所有的k个数字相加得到数字n的组合,只有1到9的数字可以被使用,并且每个组合间需要是不同的数字集。原文Find all possible combinations of k numbers t...
  • NoMasp
  • NoMasp
  • 2016年07月17日 22:21
  • 1327

LeetCode 216. Combination Sum III 解题报告

LeetCode 216. Combination Sum III 解题报告

leetcode_middle_25_216. Combination Sum III

题意: 给两个数n,k,找出所有n个各不相同的数的和是k的组合。 分析: 其实关键就是搜索遍历,怎么遍历呢?可以这样: 1,2,3    1,2,4    1,2,5  ...   1,2...
  • pusude
  • pusude
  • 2017年02月07日 14:44
  • 81
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:LeetCode216:Combination Sum III
举报原因:
原因补充:

(最多只允许输入30个字)