您的位置:首页 > 其它

LeetCode 39---Combination Sum

2016-12-28 22:03 267 查看
题目链接:LeetCode 39—Combination Sum

AC代码:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Problem39 {

public static void main(String[] args) {
int[] ss={2,3,6,7};
combinationSum(ss,7);

}
public static List<List<Integer>> combinationSum(int[] candidates, int target) {
List<List<Integer>> list=new ArrayList<List<Integer>>();
Arrays.sort(candidates);
createsult(candidates,target,new ArrayList<Integer>(),0,list);
return list;

}
public static void createsult(int[] candidates,int target,List<Integer> arr,int tag
,List<List<Integer>> list){
for(int i=tag;i<=candidates.length-1;i++){
if(i!=tag && candidates[i]==candidates[i-1]) continue;
if(candidates[i]==target){
ArrayList<Integer> arr2 =new ArrayList<Integer>();
arr2.addAll(arr);
arr2.add(candidates[i]);
list.add(arr2);
break;
}
else if(candidates[i]>target) break;
else{
ArrayList<Integer> arr2 =new ArrayList<Integer>();
arr2.addAll(arr);
arr2.add(candidates[i]);
createsult(candidates,target-candidates[i],arr2,i,list);
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode 算法