zoukankan      html  css  js  c++  java
  • Java实现 LeetCode 40 组合总和 II(二)

    40. 组合总和 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]
    ]

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/combination-sum-ii
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    PS:就是比上一个多一个不重复用

    class Solution {
        public List<List<Integer>> combinationSum2(int[] candidates, int target) {
            List<List<Integer>> res = new ArrayList<>();
            Arrays.sort(candidates);
            backtrack(candidates, 0, target, res, new ArrayList<Integer>());
            return res;
        }
        private void backtrack(int [] candidates, int start, int target, List<List<Integer>> res, ArrayList<Integer> tmp) {
            if (target == 0) {
                res.add(new ArrayList(tmp));
                return;
            }
            for (int i = start; i < candidates.length; i ++) {
                if (i > start && candidates[i] == candidates[i-1]) continue;
                if (target - candidates[i] >= 0) {
                    tmp.add(candidates[i]);
                    backtrack(candidates, i + 1, target - candidates[i], res, tmp);
                    tmp.remove(tmp.size() - 1);
                } else {
                    break;
                }
            }
        }
    }
    
  • 相关阅读:
    Median Value
    237. Delete Node in a Linked List
    206. Reverse Linked List
    160. Intersection of Two Linked Lists
    83. Remove Duplicates from Sorted List
    21. Merge Two Sorted Lists
    477. Total Hamming Distance
    421. Maximum XOR of Two Numbers in an Array
    397. Integer Replacement
    318. Maximum Product of Word Lengths
  • 原文地址:https://www.cnblogs.com/a1439775520/p/12946885.html
Copyright © 2011-2022 走看看