概述
【算法-Java实现】组合总和
一.问题描述:
给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。
比如:
输入:[2,3,6,7];输出:[[7], [2, 2, 3]]
输入:[3,4,5,6,7,8,9];输出:[[8], [4, 4], [3, 5]]
本题来源:力扣39
二.问题解答:
思路:搜索回溯
递归函数结构体:
dfs(int[] candidates,int target,List ans,List combine,int index)
candidates:输入的数组;
target:目标值;
ans:返回的结果;
combine:返回结果的子结果(可行解);
index:数组下标(从0开始进行递归)
使用递归,两种情况:
1.dfs( candidates, target, ans,combine,index+1):每一次递归都对index加1,接着进行递归;
递归终止条件:index==candidates.length;
2.对元素大小进行判断,若candidates[index]
进行递归:dfs(candidate
最后
以上就是唠叨泥猴桃为你收集整理的用java实现combin函数_【算法-Java实现】组合总和的全部内容,希望文章能够帮你解决用java实现combin函数_【算法-Java实现】组合总和所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复