leetcode: Combination Sum
来源:互联网 发布:国际交友软件排行 编辑:程序博客网 时间:2024/06/08 11:36
写得比较复杂,深搜吧 也没有什么很好地办法。
public class Solution {
public ArrayList<ArrayList<Integer>> combinationSum(int[] candidates, int target) {Arrays.sort(candidates);
return DFS(candidates,target,0,candidates.length);
}
public static ArrayList<ArrayList<Integer>> DFS(int[] candidates, int target,int begin,int end) {
ArrayList<ArrayList<Integer>> rst=new ArrayList<ArrayList<Integer>>();
ArrayList<Integer> rst_ent=new ArrayList<Integer>();
ArrayList<Integer> rst_empty=new ArrayList<Integer>();
int n=end-begin;
int i,j;
if(n==0)
return null;
if(n==1 && candidates[begin]==target)
{
rst_ent.add(candidates[begin]);
rst.add(rst_ent);
return rst;
}
i=0;
int tmp;
int last;
ArrayList<ArrayList<Integer>> subrst;
while(i*candidates[begin]<=target)
{
tmp=target-i*candidates[begin];
//if(i== 0&& begin ==2)
//System.out.println(candidates[begin]+" "+candidates[end-1]+" "+target+" ");
rst_ent=new ArrayList<Integer>();
for(j=0;j<i;j++)
rst_ent.add(candidates[begin]);
if(tmp==0)
{
rst.add(rst_ent);
break;
}
subrst=DFS(candidates, tmp,begin+1,end);
if(subrst==null)
{
i++;
continue;
}
for(j=0;j<subrst.size();j++)
{
rst_empty=new ArrayList<Integer>();
rst.add(rst_empty);
last=rst.size()-1;
rst.get(last).addAll(rst_ent);
rst.get(last).addAll(subrst.get(j));
}
i++;
}
return rst;
}
}
0 0
- [LeetCode] Combination Sum、Combination Sum II
- 【LeetCode】Combination Sum && Combination Sum II
- leetcode之Combination Sum && Combination Sum II
- leetcode Combination Sum &Combination Sum II
- leetcode-combination sum and combination sum II
- Leetcode:Combination Sum与Combination Sum II
- leetcode Combination Sum VS Combination Sum II
- [Leetcode]Combination Sum &&Combination Sum II
- LeetCode Combination Sum & Combination Sum II
- leetcode | Combination Sum & Combination Sum 2
- LeetCode: Combination Sum
- LeetCode: Combination Sum II
- LeetCode: Combination Sum
- LeetCode: Combination Sum II
- [LeetCode]Combination Sum
- [LeetCode]Combination Sum II
- LeetCode Combination Sum
- LeetCode Combination Sum II
- 《深入理解Android:Wi-Fi,NFC和GPS》章节连载[节选]--第九章 深入理解GPS
- 第五届蓝桥杯C/C++初赛试题
- apache+tomcat
- **Leetcode_copy-list-with-random-pointer (c++ and python version)
- 开源免费的C/C++网络库(c/c++ sockets library)
- leetcode: Combination Sum
- 手持掌上电脑抄表程序开发,兰德、欧衡杰等是等设备
- MFC中的CDC详细教程(1)
- LoopExample终极版
- 英语学习--chap5 动名词
- MyEclipse提高性能的方法
- MFC中的CDC详细教程(2)
- 白盒测试中逻辑覆盖的六种方法
- Android实现ListView异步加载图片