39 Combination Sum

原创 2016年05月31日 22:28:37

DFS处理,有两个比较坑的要求:

  • Elements in a combination (a1a2, … , ak) must be in non-descending order. (ie, a1 ≤ a2 ≤ … ≤ ak).
  • The solution set must not contain duplicate combinations.
每个备选数字都可以用无限次。

For example, given candidate set 2,3,6,7 and target 7

若给定[7,6,3,2] ,target=7 ,顺序搜索可能出现[3,2,2],不满足要求1,所以可以先给数组升序排列。

onstack法搜索所有的可能会导致同时出现[2,2,3]、[3,2,2]这样的解,没有顺序?就加顺序

限制下次递归调用使用的index必须比当前的大,即是规定顺序。


public class Solution {
    List<List<Integer>> retlist = new ArrayList<>(512);

	public List<List<Integer>> combinationSum(int[] candidates, int target)
	{

		Arrays.sort(candidates);

		dfs(candidates, target, 0, -1, new ArrayList<Integer>());

		return retlist;
	}

	public void dfs(int[] arr, int t, int sum, int lastindex,ArrayList<Integer> arraylist)
	{
		if (sum > t)
			return;
		if (sum == t)
		{
			retlist.add(new ArrayList<>(arraylist));
			return;
		}

		for (int i = 0; i < arr.length; i++)
		{
			if (i >= lastindex)
			{
				arraylist.add(arr[i]);
				dfs(arr, t, sum + arr[i], i, arraylist);
				arraylist.remove(arraylist.size()-1);
			}

		}
	}
}


版权声明:本文为博主原创文章,未经博主允许【可以】转载

[LeetCode39]Combination Sum

Given a set of candidate numbers (C) and a target number (T), find all unique combinations in C wher...
  • sbitswc
  • sbitswc
  • 2014年06月17日 04:15
  • 6145

LeetCode39:Combination Sum

Given a set of candidate numbers (C) and a target number (T), find all unique combinations in C wher...
  • u012501459
  • u012501459
  • 2015年07月06日 20:58
  • 3144

LeetCode39——Combination Sum

LeetCode39——Combination Sum 题意: 打个比方,现在盒子里面有小球,球上有数字,现在给定一个target,要求有放回的从盒子里面取小球,要求数字加起来为target的,把所有...
  • zhangxiao93
  • zhangxiao93
  • 2015年10月17日 21:08
  • 738

Leetcode #39. Combination Sum 组合求和 解题报告

1 解题思想原题是说给定一些数字和一个目标值,从这些数字中挑选几个加起来,加起来后他的和正好等于目标值,其中一个数字可以选择多次。要求输出的不能有重复,并且组内的顺序是不能降序的。这道题首先必须要想到...
  • MebiuW
  • MebiuW
  • 2016年04月10日 23:42
  • 1298

[leetcode]39. Combination Sum,python实现【Medium难度】

39.COMBINATION SUM,PYTHON实现
  • zl87758539
  • zl87758539
  • 2016年06月16日 17:01
  • 1449

回溯详解及其应用:Leetcode 39 combination sum

原理 初入门 基本定义和概念 举栗子 编程思路 实践 生成符合规范的括号 combination sum n queen原理初入门有时会遇到这样一类题目,它的问题可以分解,但是又不能得出明确的动态规划...
  • c602273091
  • c602273091
  • 2017年01月31日 16:47
  • 383

[LeetCode 39&40] Combination Sum I & II

题目链接:combination-sum import java.util.ArrayList; import java.util.Arrays; import java.util.List...
  • ever223
  • ever223
  • 2015年03月28日 23:41
  • 824

[leetcode-39]Combination Sum(java)

问题描述: Given a set of candidate numbers (C) and a target number (T), find all unique combinations in...
  • zdavb
  • zdavb
  • 2015年07月31日 11:02
  • 981

回溯法——combination-sum、combination-sum-ii

题一  Combination Sum I,题目大意是这样的:有一个正整数集合C,和一个目标数T(T也为正整数)。现从C中选出一些数,使其累加和恰好等于T(C中的每个数都可以取若干次),求所有不同的取...
  • jingsuwen1
  • jingsuwen1
  • 2016年05月31日 13:27
  • 3460

leetCode 39.Combination Sum(组合总和) 解题思路和方法

Combination Sum Given a set of candidate numbers (C) and a target number (T), find all unique com...
  • xygy8860
  • xygy8860
  • 2015年07月09日 22:33
  • 1248
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:39 Combination Sum
举报原因:
原因补充:

(最多只允许输入30个字)