【题目描述】
给定一个候选人编号的集合
candidates
和一个目标数target
,找出candidates
中所有可以使数字和为target
的组合。
candidates
中的每个数字在每个组合中只能使用 一次 。注意:解集不能包含重复的组合。
示例 1:
输入: candidates = [10,1,2,7,6,1,5], target = 8, 输出: [ [1,1,6], [1,2,5], [1,7], [2,6] ]示例 2:
输入: candidates = [2,5,2,1,2], target = 5, 输出: [ [1,2,2], [5] ]提示:
1 <= candidates.length <= 100
1 <= candidates[i] <= 50
1 <= target <= 30
【题目链接】. - 力扣(LeetCode)
【解题代码】
package dp;
import java.util.*;
public class CombinationSum2 {
private static List<List<Integer>> numLists = new ArrayList<>();
private static List<Integer> numList = new ArrayList<>();
public static void main(String[] args) {
//int[] candidates = {10, 1, 2, 7, 6, 1, 5};
//int[] candidates = {10, 1, 2, 7, 6, 1, 5};
int[] candidates = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2};
System.out.println("开始计算。。。");
long start = System.curre