官方答案代码:作者:LeetCode-Solution
链接:https://leetcode-cn.com/problems/combination-sum/solution/zu-he-zong-he-by-leetcode-solution/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
官方的递归图解
:
个人微改:
import java.util.ArrayList;
import java.util.List;
public class combinationSum {
public static void main(String args[]) {
solution01 hah = new solution01();
int a[] = new int[] {2,3,6,7};
List<List<Integer>> ans = new ArrayList<List<Integer>>();
ans = hah.combination(a,7);
System.out.println(ans);
}
}
class solution01{
public List<List<Integer>> combination(int candidates[],int target){
List<List<Integer>> ans = new ArrayList<List<Integer>>();
List<Integer> combine = new ArrayList<Integer>();
dfs(candidates, target, ans, combine, 0);
return ans;
}
public void dfs(int candidates[],int target,List<List<Integer>> ans,List<Integer> combine,int idx) {
if(idx == candidates.length){
return;
}
if(target == 0) {
ans.add(new ArrayList<Integer>(combine));
return;
}
dfs(candidates,target,ans,combine,idx+1);
if(target-candidates[idx]>=0) {
combine.add(candidates[idx]);
dfs(candidates,target-candidates[idx],ans,combine,idx);
combine.remove(combine.size()-1);
}
}
}

这篇博客介绍了一个利用递归求解组合总和问题的Java实现。代码通过深度优先搜索(DFS)策略,从给定的候选数字中找出所有可能的组合,使得组合的元素之和等于目标值。博客内容包括了官方提供的解决方案和作者的个人微改版,展示了如何将递归思想应用到实际编程问题中。
387

被折叠的 条评论
为什么被折叠?



