您的位置:首页 > 其它

[Leetcode] Combination Sum III

2015-08-12 21:06 295 查看
这里只能使用1到9九个数字,并且使用的数字的个数有限制。方法类似

public class Solution {
public void dp(List<List<Integer>> list, List<Integer> listone, int tmpsum, int start, int k, int target){
if(tmpsum==target&&listone.size()==k){
List<Integer> newlist = new LinkedList<Integer>();
newlist.addAll(listone);
list.add(newlist);
return;
}
if(listone.size()==k) return;
//listone.add(start);
for(int s=start;s<=9;s++){
listone.add(s);
dp(list,listone,tmpsum+s,s+1,k,target);
listone.remove(listone.size()-1);
}
//listone.remove(listone.size()-1);
return;
}
public List<List<Integer>> combinationSum3(int k, int n) {
List<List<Integer>> list = new LinkedList<List<Integer>>();
List<Integer> listone = new LinkedList<Integer>();
for(int i=1;i<=9;i++){
listone.add(i);
dp(list,listone,i,i+1,k,n);
listone.remove(listone.size()-1);
}
return list;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: