LeetCode 40. 组合总和 II Combination Sum II

给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。

candidates 中的每个数字在每个组合中只能使用一次。

说明:

  • 所有数字(包括目标数)都是正整数。
  • 解集不能包含重复的组合。 

示例 1:

输入: candidates = [10,1,2,7,6,1,5],target = 8,
所求解集为:
[
  [1, 7],
  [1, 2, 5],
  [2, 6],
  [1, 1, 6]
]

示例 2:

输入: candidates = [2,5,2,1,2], target = 5,
所求解集为:
[
  [1,2,2],
  [5]
]
public class Solution {
    public List> combinationSum2(int[] candidates, int target) {
         List> result = new ArrayList>();  
         List array = new ArrayList();  
         if(candidates==null) {  
             result.add(array);  
             return result;  
         }  
         Arrays.sort(candidates);  
         dfs(candidates,0, target,array,result);   
         return result;  
    }
    
    public void dfs(int [] num, int start, int target, List array, List> result) {  
	        if(target==0) {  
	            result.add(new ArrayList(array));  
	            return;  
	        }  
	          
	        if(start>=num.length||num[0]>target) {  
	            return;  
	        }  
	        
	        int i = start;  
	        while(i

 LeetCode 40. 组合总和 II Combination Sum II_第1张图片

你可能感兴趣的:(LeetCode,算法,LeetCode,组合总和,II,Combination,Sum,II)