216. Combination Sum III
2016-11-24 11:45
357 查看
public static List<List<Integer>> combinationSum3(int k, int n) { int[] nums = {1,2,3,4,5,6,7,8,9}; Set<Set<Integer>> result = threeSum(nums, k, 0, n); List<List<Integer>> list = new LinkedList<>(); for(Set<Integer> set : result) { List<Integer> tlist = new LinkedList<>(); tlist.addAll(set); list.add(tlist); } return list; } public static Set<Set<Integer>> threeSum(int[] nums, int k, int start, int target) { Set<Set<Integer>> result = new HashSet<>(); if(nums[start] * k > target || nums[nums.length-1] * k < target) { return result; } for(int i = start; i < nums.length; i++) { if(k == 1) { if(target < nums[i]) { break; }else if(target > nums[i]) { continue; }else { Set<Integer> set = new HashSet<>(); set.add(nums[i]); result.add(set); break; } } for(Set<Integer> tlist : threeSum(nums, k-1, start+1, target- nums[i])) { if(!tlist.contains(nums[i])) { tlist.add(nums[i]); result.add(tlist); } } } return result; }
相关文章推荐
- 216. Combination Sum III
- [LeetCode-Algorithms-216] "Combination Sum III" (2018.1.1-WEEK18)
- 216 Combination Sum III [Leetcode]
- 216. Combination Sum III**
- LeetCode 216 Combination Sum III
- 39,40,216 Combination Sum I II III
- 216. Combination Sum III
- 216. Combination Sum III
- 216. Combination Sum III
- 216. Combination Sum III
- Leetcode 39 40 216 Combination Sum I II III
- 216. Combination Sum III
- 216.Combination Sum III
- 216. Combination Sum III
- 216. Combination Sum III
- Leetcode 39 Combination Sum & 40 Combination Sum II & 216 Combination Sum III & 377 Combination V
- [Leetcode 216, Medium] Combination sum III
- [leetcode] 216 Combination Sum III
- [LeetCode 216] Combination Sum III
- Leetcode 216 Combination Sum III