避免这个循环的重复 所以i>position && nums[i] == nums[i-1]

 1 class Solution {
 2     List<List<Integer>> res = new ArrayList<>();
 3     public List<List<Integer>> combinationSum2(int[] candidates, int target) {
 4         Arrays.sort(candidates);
 5         backtrack(candidates, target, 0, new ArrayList<>(), 0);
 6         return res;
 7     }
 8
 9     public void backtrack(int[] candidates, int target, int sum, List<Integer> list, int position) {
10         if(sum > target) return;
11         if(sum == target) {
12             res.add(new ArrayList<>(list));
13         }
14         for(int i = position; i < candidates.length; i++) {
15             if(i > position && candidates[i] == candidates[i-1]) { //注意 i > position
16                 continue;
17             }
18             list.add(candidates[i]);
19             sum += candidates[i];
20             backtrack(candidates, target, sum, list, i+1);
21             list.remove(list.size() - 1);
22             sum -= candidates[i];
23         }
24     }
25 }

转载于:https://www.cnblogs.com/goPanama/p/9622915.html

40. Combination Sum II相关推荐

  1. 40. Combination Sum II 组合总和 II

    给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. candidates 中的每个数字在每个组合中只能使用一次. ...

  2. 40. Combination Sum II **

    description: 给定target, 求给定数列中找到几个数(其中的数不可以重复使用,且一组数有几个也不做限制)的和为target,和上面那个题一毛一样的,就改一下下标就行了,背下来背下来背下 ...

  3. 【DFS】LeetCode 40. Combination Sum II

    Solution1:我的答案 同39题.DFS时间复杂度O(2n)O(2n)O(2^n),空间复杂度O(kn)O(kn)O(kn),k是最终答案的数量,n是元素个数 去重,用set,比较偷懒的做法 c ...

  4. Combination Sum 和Combination Sum II

    这两道题的基本思路和combination那一题是一致的,也是分治的方法. 其中combination Sum复杂一点,因为每个数可能用多次.仔细分析下,本质上也是一样的.原来是每个数仅两种可能.现在 ...

  5. 递归/回溯:Combination Sum II数组之和

    问题如下: 已知一组数(其中有重复元素),求这组数可以组成的所有子集中,子 集中的各个元素和为整数target的子集,结果中无重复的子集. 例如: nums[] = [10, 1, 2, 7, 6, ...

  6. C#LeetCode刷题之#40-组合总和 II(Combination Sum II)

    目录 问题 示例 分析 问题 该文章已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3666 访问. 给定一个数组 candidates ...

  7. Combination Sum II

    1 解析 这道题是则就是上一道题的进阶版,此题可以出现相同的元素,例如[1 1 1 7] 目标值为8,那么难点就在于如何去除重复的情况,只保留[1 7]这种情况. 2 思路 都是采用DFS求解,思路和 ...

  8. LeetCode40 Combination Sum II 解析

    详细见:leetcode.com/problems/combination-sum-ii C和Python的去重算法,应该记住. Java是很久之前写的,并不好. 规则是:相同数字. 1,前面选了,后 ...

  9. Lintcode: k Sum II

    Given n unique integers, number k (1<=k<=n) and target. Find all possible k integers where the ...

最新文章

  1. 【STM32】OLED 显示实验代码详解
  2. HBase 与Hive数据交互整合过程详解
  3. Swagger UI 与SpringMVC的整合 II
  4. EOS从入门到精通-设计背景与DPOS算法(文字稿)
  5. ie php文件,IE(HTTPS):从php文件生成pdf不起作用
  6. Python2寿命只剩一个月啦!还不快赶紧学起Python3酷炫到爆的新特性!
  7. Java PipedInputStream receive()方法与示例
  8. linux软件包管理学习归档-2020-0624
  9. frp ---- golang编写的内网穿透工具简介
  10. MDK 中 [WEAK] 的作用
  11. Idea修改主题,字体等常规操作
  12. 干细胞研究最新进展(2022年4月)
  13. 软件测试自学还是报班好?
  14. Opencv下双线性插值法进行图像放缩
  15. 通达信资金净流入公式_通达信成交额资金净流入指标公式
  16. jQuery笔试题汇总整理--2018
  17. 【亲测已解决】CentOS7 ifconfig commend not fount(命令找不到)
  18. zbt (Steam游戏道具)自动发货
  19. 谷歌中国人才流失 遭猎头公司不断挖角
  20. 采购年度计划书应该怎么写?(范文)

热门文章

  1. mysql对应systables_mysql5.7中的sys表详解(转)
  2. 路由 命令 linux,linux路由命令
  3. oracle 10g ocp 047解析(精简版),ORACLE 10G OCP 043 笔记
  4. python中run函数作用_python3多线程中如何改写run()函数?
  5. 第三代计算机的内存使用是什么,lpddr3内存什么意思
  6. Shell脚本编程之(五)条件判断式
  7. 数据解决方案:原力大数据教你如何撰写数据分析报告
  8. Spring面试基础题
  9. 腾讯云首发智能网关流控,公有云进入网络精细管控时代
  10. Linux的目录ls命令