题目描述
题解
基本就和77是一样的组合问题
import java.util.*;
public class Leetcode_216 {
public List<List<Integer>> combinationSum3(int k, int n) {
List<Integer> templist = new ArrayList<>();
List<List<Integer>> ret = new ArrayList<>();
findcombination(k,n,1,templist,ret);
return ret;
}
private int sum(List<Integer> t)
{
int summ = 0;
for(int i = 0;i<t.size();i++)
{
summ += t.get(i);
}
return summ;
}
private void findcombination(int k, int n, int start, List<Integer> templist, List<List<Integer>> ret)
{
if(templist.size() == k)
{
if(sum(templist)==n)
{
ret.add(new ArrayList<>(templist));
}
}
for(int i = start;i<10;i++)
{
templist.add(i);
findcombination(k,n,i+1,templist,ret);
templist.remove(templist.size()-1);
}
}
public static void main(String[] args)
{
List<List<Integer>> ret = new ArrayList<>();
Leetcode_216 a = new Leetcode_216();
ret = a.combinationSum3(2,18);
System.out.println(ret.toString());
}
}