zoukankan      html  css  js  c++  java
  • 39. Combination Sum

    Given a set of candidate numbers (C) and a target number (T), find all unique combinations in C where the candidate numbers sums to T.

    The same repeated number may be chosen from C unlimited number of times.

    Note:

    • All numbers (including target) will be positive integers.
    • The solution set must not contain duplicate combinations.

    For example, given candidate set [2, 3, 6, 7] and target 7
    A solution set is: 

    [
      [7],
      [2, 2, 3]
    ]
    public class Solution {
        public List<List<Integer>> combinationSum(int[] candidates, int target) {
            List<List<Integer>> res = new ArrayList<>();
            List<Integer> member = new ArrayList<>();
            if(candidates.length == 0)
                return res;
            dfs(res, member, candidates, target, 0);
            return res;
        }
        public void dfs(List<List<Integer>> res, List<Integer> member, int[] candidates, int target, int deep){
            if(target < 0)
                return;
            if(target == 0){
                res.add(new ArrayList<Integer>(member));
                return;
            }
            for(int i = deep; i < candidates.length; i++){
                member.add(candidates[i]);
                dfs(res, member, candidates, target-candidates[i], i);
                member.remove(member.size()-1);
            }
        }
    }
  • 相关阅读:
    构建之法阅读笔记06
    构建之法阅读笔记05
    第九周进度条
    团队开发之个人博客九
    团队开发之个人博客八(4月27)
    无人机第二波
    团队开发之个人博客七
    无人机学习第一波
    团队开发之个人博客六
    第八周进度条
  • 原文地址:https://www.cnblogs.com/joannacode/p/6072267.html
Copyright © 2011-2022 走看看