# 组合总和

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

candidates 中的数字可以无限制重复被选取。

说明:

示例 1:

输入:candidates = [2,3,6,7], target = 7,
输出:
[[7],[2,2,3]]

示例 2:

输入:candidates = [2,3,5], target = 8,
输出:
[[2,2,2,2],[2,3,3],[3,5]]

 

提示:

## template ```java class Solution { public List> combinationSum(int[] candiates, int target) { List> resultList = new ArrayList<>(); List result = new ArrayList<>(); Arrays.sort(candiates); dfs(candiates, resultList, result, 0, target); return resultList; } private void dfs(int[] candiates, List> resultList, List result, int start, int target) { if (target < 0) { return; } else if (target == 0) { resultList.add(new ArrayList<>(result)); } else { for (int i = start; i < candiates.length; i++) { result.add(candiates[i]); dfs(candiates, resultList, result, i, target - candiates[i]); result.remove(result.size() - 1); } } } } ``` ## 答案 ```java ``` ## 选项 ### A ```java ``` ### B ```java ``` ### C ```java ```