zoukankan      html  css  js  c++  java
  • 组合总和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]
    ]

    解答:

    class Solution {
        private List<List<Integer>> res=new ArrayList<>();
        private int length;
        private int[] candidates;
        public List<List<Integer>> combinationSum2(int[] candidates,int target){
            if(candidates==null||candidates.length==0){
                return res;
            }
            Arrays.sort(candidates);
            this.length=candidates.length;
            this.candidates=candidates;
            getCombination(target,0,new Stack<>());
            return res;
        }
    
        public void getCombination(int residuse, int start, Stack<Integer> stack){
            if(residuse<0){
                return ;
            }
            if(residuse==0){
                List<Integer> r=new ArrayList<>(stack);
                res.add(r); 
                return;
            }
            for(int i=start;i<length&&residuse-candidates[i]>=0;i++){
                if(i>start&&candidates[i]==candidates[i-1]){
                    continue;
                }
                stack.add(candidates[i]);
                getCombination(residuse-candidates[i],i+1,stack);
                stack.pop();
            }
        }
    }
    View Code

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/combination-sum-ii

  • 相关阅读:
    使用RequireJS优化Web应用前端
    基线样式
    css层叠顺序
    摘录android工具类
    android中相关的图形类
    Google Android SDK开发范例------------20141119
    将博客搬至CSDN
    LightOJ1356 最大独立集 HK算法 素数分解
    求二分图最大匹配——Hopcroft-Krap算法
    HDU 6333 莫队分块 + 逆元打表求组合数
  • 原文地址:https://www.cnblogs.com/wuyouwei/p/11954325.html
Copyright © 2011-2022 走看看