Combination Sum (without Duplication)
来源:互联网 发布:监管网络的部门 编辑:程序博客网 时间:2024/05/27 19:26
Given a collection of candidate numbers (C) and a target number (T), find all unique combinations in C where the candidate numbers sums to T.
Each number in C may only be used once in the combination.
Note:
- All numbers (including target) will be positive integers.
- The solution set must not contain duplicate combinations.
For example, given candidate set [10, 1, 2, 7, 6, 1, 5]
and target 8
,
A solution set is:
[ [1, 7], [1, 2, 5], [2, 6], [1, 1, 6]]
代码如下:
import java.util.ArrayList;import java.util.Arrays;import java.util.List;/** * 不用相同的元素 */public class CombinationSumII {public List<ArrayList<Integer>> combinationSumII(int[] nums,int target){List<ArrayList<Integer>> list = new ArrayList<>();Arrays.sort(nums);backtrack(list,new ArrayList<>(),nums,target,0);return list;}private void backtrack(List<ArrayList<Integer>> list, ArrayList<Integer> arrayList, int[] nums, int target, int start) {if(target<0)return;else if(target == 0)list.add(arrayList);else{for(int i=start;i<nums.length;i++){if(i>start && nums[i]==nums[i-1])//跳过重复的数continue;arrayList.add(nums[i]);backtrack(list,arrayList,nums,target-nums[i],i+1);arrayList.remove(arrayList.size()-1);}}}}
阅读全文
0 0
- Combination Sum (without Duplication)
- Longest Substring without Duplication
- Combination Sum (II)
- leetcode系列(54)Combination Sum, Combination Sum II
- Combination Sum II (重重)
- LeetCode--Combination Sum(DFS)
- LeetCode(39) Combination Sum
- leetcode_c++:Combination Sum(039)
- 39. Combination Sum (重要)
- Leetcode-Combination Sum(深搜)
- LeetCode(39)--Combination Sum
- Combination Sum
- Combination Sum
- Combination Sum
- Combination Sum
- Combination Sum
- Combination Sum
- Combination Sum
- api接口的实现
- disable hwui---hardware render
- 计算机编码详解
- 自定义控件之柱状图
- 51nod-1119 机器人走方格(组合数学,离散数学)
- Combination Sum (without Duplication)
- Django 配置 Ueditor
- 设计模式-观察者模式 C++实现
- 实现queue和stack的拷贝构造函数的一个思路
- php代码注释
- 为什么推荐Zookeeper作注册中心
- HashMap
- MySQL 学习<十一> 触发器
- MFC的RTTI机制的宏实现示例解析