LeetCode(40)组合总和Ⅱ⭐⭐

给定一个候选人编号的集合 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

思路:和39一样的思路,注意回溯

class Solution {
          List<List<Integer>> result = new ArrayList<>();
          LinkedList<Integer> path = new LinkedList<>();
          public List<List<Integer>> combinationSum2(int[] candidates, int target) {
              if (candidates == null || candidates.length == 0){
                  return result;
              }
              Arrays.sort(candidates);
              backTrachking(candidates,target,0);
              return result;
          }
          public void backTrachking(int[] candidates,int target,int index){
              //终止条件
              if (target == 0){
                  result.add(new ArrayList<>(path));
                  return;
              }
              if (target < 0){
                  return;
              }
              if (index == candidates.length){
                  return;
              }
              for (int i = index; i < candidates.length; i++) {
                  //正确剔除重复解的办法
                  //跳过同一树层使用过的元素
                  if ( i > index && candidates[i] == candidates[i - 1] ) {
                      continue;
                  }
                  int curNum = candidates[i];
                  if (target - curNum < 0){
                      break;
                  }
                  path.add(curNum);
                  backTrachking(candidates,target - curNum,i + 1);//这里加一是不能重复使用
                  path.removeLast();
              }
          }
}

相关推荐

  1. leetcode 40. 组合总和 II

    2024-01-06 11:48:02       40 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-06 11:48:02       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-06 11:48:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-06 11:48:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-06 11:48:02       20 阅读

热门阅读

  1. 机器人相关知识

    2024-01-06 11:48:02       36 阅读
  2. 解析千兆多模光模块SFP-GE-SX

    2024-01-06 11:48:02       36 阅读
  3. 信息学奥赛一本通2067详解+代码

    2024-01-06 11:48:02       38 阅读
  4. 深入Pandas:数据分析的强大工具

    2024-01-06 11:48:02       35 阅读
  5. nlp中的transformer中的mask

    2024-01-06 11:48:02       43 阅读
  6. 一、Vue3基础[常用的循环]

    2024-01-06 11:48:02       41 阅读
  7. 基于SpringBoot的餐饮管理系统的设计与实现

    2024-01-06 11:48:02       45 阅读
  8. 222. 完全二叉树的节点个数

    2024-01-06 11:48:02       39 阅读
  9. Nginx网站服务

    2024-01-06 11:48:02       35 阅读
  10. 客户满意度调查常用的ChatGPT通用提示词模板

    2024-01-06 11:48:02       36 阅读