39. Combination Sum
来源:互联网 发布:微信mac版 dmg 编辑:程序博客网 时间:2024/06/13 23:39
题目
Given a set of candidate numbers (C) (without duplicates) 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]]
思路
这是深度搜索思想的典型应用。例如搜索candidates=[1,2],target=3时的搜索路径。
公有两条路径满足:
[1,1,1][1,2]
实现代码
//assert: //1. elements can be used more than once//2. no duplicate elements.public class Solution { private IList<IList<int>> result = new List<IList<int>>(); private int[] nums; public IList<IList<int>> CombinationSum(int[] candidates, int target) { nums = candidates; Array.Sort(nums); dfs(new List<int>(), target, 0); return result; } private void dfs(List<int> tmp, int remain, int start) { if (remain < 0) return; if (remain == 0) result.Add(new List<int>(tmp)); //donot directly add tmp!!! else { for (int i = start; i < nums.Length; i++) { tmp.Add(nums[i]); dfs(tmp, remain - nums[i], i); //start shoud be set i!!! tmp.RemoveAt(tmp.Count - 1); //remove last-index element in tmp } } }}
阅读全文
2 0
- 39. Combination Sum && 40. Combination Sum II
- 39. Combination Sum &&40. Combination Sum II
- [LeetCode]39.Combination Sum
- LeetCode --- 39. Combination Sum
- LeetCode 39.Combination Sum
- [Leetcode] 39. Combination Sum
- 39. Combination Sum
- 39. Combination Sum
- Leetcode-39.Combination Sum
- LeetCode 39. Combination Sum
- [LeetCode]39. Combination Sum
- 39. Combination Sum LeetCode
- [leetcode] 39. Combination Sum
- 39. Combination Sum
- 39. Combination Sum
- leetcode 39. Combination Sum
- 【leetcode】 39. Combination Sum
- 39. Combination Sum(backtracking)
- Linux上mysql登陆错误解决办法ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/
- 树(树,二叉树,二叉查找树)
- UCI数据集使用
- hihocoder1089
- Sublime Text 3 3126 注册码
- 39. Combination Sum
- hdu 5858 Hard problem
- 给定一个数组,值全是正数,请返回累加和为给定值k的最长子数组长度。
- Eclipse如何修改Web项目的名称
- windows 10 python 2.7和python3.6共存解决方法和pip安装
- python matplotlib库
- hdu 5867 Water problem
- Android 中 byte类型数据大于0x7F时的比较
- invalid header field