这篇“java怎么求组合总和”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“java怎么求组合总和”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,希望大家通过这篇文章有所收获,下面让我们一起来看看具体内容吧。
给定一个数组 candidates
和一个目标数 target
,找出 candidates
中所有可以使数字和为 target
的组合。
candidates
中的每个数字在每个组合中只能使用一次。
说明:
所有数字(包括目标数)都是正整数。
解集不能包含重复的组合。
示例 1:
输入: candidates = , target = , 所求解集为: [ [1, 7], [1, 2, 5], [2, 6], [1, 1, 6] ]
示例 2:
输入: candidates = [2,5,2,1,2], target = 5,
所求解集为:
[
[1,2,2],
[5]
]
组合总和
解析:
这里首先要对数组进行排序,result表示查找的结果,cur表示查找的其中一个组合,先用target减去数组中的值,如果结果等于0,则表示找到,然后加入到result中,如果target大于0,则继续查找。这里使用了递归的思想。如果for循环条件满足的时候就把当前值加入到cur中,然后递归调用,我们知道递归的原理就是先调用然后再回退,回退的时候把cur最后一个加入的删除,然后再判断。比如数组{1,2,4,6},target为7,当cur包含{1,2,4}的时候正好等于7,然后回退的时候把4移除,然后for循环判断还是不成立,再把2移除,然后再判断加入6合适……
Java的基本数据类型分为:1、整数类型,用来表示整数的数据类型。2、浮点类型,用来表示小数的数据类型。3、字符类型,字符类型的关键字是“char”。4、布尔类型,是表示逻辑值的基本数据类型。
感谢您的阅读,希望您对“java怎么求组合总和”这一关键问题有了一定的理解,具体使用情况还需要大家自己动手实验使用过才能领会,快去试试吧,如果想阅读更多相关知识点的文章,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。