Medium 216题 Combination Sum III

来源:互联网 发布:电脑恢复手机数据 编辑:程序博客网 时间:2024/05/17 04:59

Question:

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]]
Solution:

public class Solution {   public List<List<Integer>> combinationSum3(int k, int n) {        List<List<Integer>> ans = new ArrayList<List<Integer>>();        List<Integer> cur = new ArrayList<Integer>();        combination(ans,new ArrayList<Integer>(),k,1,n);        return ans;            }    public void combination(List<List<Integer>> ans, List<Integer> comb, int k,  int start, int n) {        if(comb.size()==k&&n==0)        {            ans.add(new ArrayList<Integer>(comb));            return;        }        for(int i=start;i<=9;i++)        {            comb.add(i);            combination(ans,comb,k,i+1,n-i);            comb.remove(comb.size()-1);        }    }    }

变形程度更大了而已。。。


0 0