您的位置:首页 > 其它

Combination Sum III

2015-06-01 14:50 393 查看
Find all possible combinations of k numbers that add up to a number n, given that only numbersfrom 1 to 9 can be used and each combination should be a unique set of numbers.Ensure that numbers within the set are sorted in ascending order.Example 1:Input: k = 3, n = 7Output:
[[1,2,4]]
Example 2:Input: k = 3, n = 9Output:
[[1,2,6], [1,3,5], [2,3,4]]
public class Solution {public List<List<Integer>> combinationSum3(int k, int n) {List<List<Integer>> res=new ArrayList<List<Integer>>();if(n>45 || k>9) return res;List<Integer> temp=new ArrayList<Integer>();select_num(k,1,n, temp, res);return res;}public void select_num(int k,int idx,int n, List<Integer> temp, List<List<Integer>> res){if(n<0) return;if(k==0&& n==0){List<Integer> temp_new=new ArrayList<Integer>(temp);res.add(temp_new);return;}if(idx>9) return;temp.add(idx);select_num(k-1,idx+1,n-idx,temp,res);temp.remove(temp.size()-1);select_num(k,idx+1,n,temp,res);}}
[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: