标签:
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]]
Credits:
Special thanks to @mithmatt for adding this problem and creating all test cases.
Subscribe to see which companies asked this question
思路:
与【Combinations】类似,稍作修改即可。
c++ code:
class Solution { public: vector<vector<int>> combinationSum3(int k, int n) { vector<vector<int>> combs; vector<int> comb; combine(combs,comb,1,k,n); return combs; } // 自定义函数 void combine(vector<vector<int>> &combs, vector<int> &comb,int begin,int k, int n) { if(k==0 && n==0) { // vector<int> t(comb); combs.push_back(comb); return; } for(int i=begin;i<=9;i++) { comb.push_back(i); combine(combs,comb,i+1,k-1,n-i); comb.pop_back(); } } };
标签:
原文地址:http://blog.csdn.net/itismelzp/article/details/51623003