[Leetcode]216. Combination Sum III

来源:互联网 发布:我知女人心粤语 编辑:程序博客网 时间:2024/06/05 20:10

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.


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]]
class Solution {public:    vector<vector<int>> combinationSum3(int k, int n) {        vector<vector<int>> ans;        vector<int> res;        backtracking(ans, res, 1, k, n);        return ans;    }private:    void backtracking(vector<vector<int>> &ans, vector<int> &res, int val, int k, int n) {        if (k < 0 || n < 0)            return;        if (n == 0 && k == 0) {            ans.push_back(res);            return;        }        for (int i = val; i <= 9; ++i) {            res.push_back(i);            backtracking(ans, res, i + 1, k - 1, n - i);            res.pop_back();            }    }};

0 0
原创粉丝点击