博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode------Combination Sum
阅读量:5959 次
发布时间:2019-06-19

本文共 1272 字,大约阅读时间需要 4 分钟。

标题:
通过率: 27.7%
难度: 中等

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.
  • Elements in a combination (a1, a2, … , 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

A solution set is: 
[7] 
[2, 2, 3] 

本题依然是递归算法,算法的关键点是递归时重复元素。题目上说可以从candidate中重复一个元素,那么再递归时不用从i+1开始,还是从i开始,结果还可能是重复的情况,那么还是要res。cantain一次,具体细节看代码:

1 public class Solution { 2     public ArrayList
> combinationSum(int[] candidates, int target) { 3 ArrayList
> res=new ArrayList
>(); 4 ArrayList
tmp=new ArrayList
(); 5 Arrays.sort(candidates); 6 dfs(candidates,target,0,res,tmp); 7 return res; 8 } 9 public void dfs(int[] candidates, int target,int start,ArrayList
> res,ArrayList
tmp){10 if(target<0)return;11 if(target==0 && !res.contains(tmp)){12 res.add(new ArrayList
(tmp));13 return ;14 }15 for(int i=start;i

 

转载于:https://www.cnblogs.com/pkuYang/p/4354379.html

你可能感兴趣的文章
15.6. HTML嵌入图片
查看>>
Gym 100952G&&2015 HIAST Collegiate Programming Contest G. The jar of divisors【简单博弈】
查看>>
Could not find class &#39;XXX.activity‘&#39;, referenced from method &#39;YYYY&#39;
查看>>
国内较快的maven镜像
查看>>
漫谈递归转非递归
查看>>
第 52 章 SQL Statement Syntax
查看>>
mysql 修改表名的方法:sql语句
查看>>
JQuery实现日期联动
查看>>
eclipse让Html Javascript 自动提示
查看>>
常用网址记录
查看>>
Java的垃圾回收之算法
查看>>
利用Aspose.Word控件实现Word文档的操作
查看>>
72.8. ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
查看>>
通过Python处理Android API Doc离线访问
查看>>
MobaXterm连接Telnet设置方法
查看>>
I.MX6Q MfgTool2 ucl2.xml eMMC
查看>>
手把手教你使用Markdown
查看>>
iOS - Quartz 2D 贝塞尔曲线
查看>>
【基础进阶】URL详解与URL编码
查看>>
[家里蹲大学数学杂志]第425期一个定积分的计算
查看>>