leetcode 39 组合总和 JAVA
题目:
给定一个无重复元素的数组 candidates
和一个目标数 target
,找出 candidates
中所有可以使数字和为 target
的组合。
candidates
中的数字可以无限制重复被选取。
说明:
- 所有数字(包括
target
)都是正整数。 - 解集不能包含重复的组合。
示例 1:
输入: candidates =[2,3,6,7],
target =7
,
所求解集为:
[
[7],
[2,2,3]
]
示例 2:
输入: candidates = [2,3,5],
target = 8,
所求解集为:
[
[2,2,2,2],
[2,3,3],
[3,5]
]
解题思路:
首先将数组排序,然后递归地查找符合的数字
class Solution {
public List<List<Integer>> combinationSum(int[] candidates, int target) {
List<List<Integer>> res = new ArrayList<>();
Arrays.sort(candidates);
getAnswers(res,candidates,target,new ArrayList<>(),0);
return res;
} public void getAnswers(List<List<Integer>> res, int[] candidates, int target,
List<Integer> tempList,int index) {
if (target == 0) {
res.add(tempList);
return;
}
for (int i = index; i < candidates.length; i++) {
if (candidates[i]<=target) {
List<Integer> list=new ArrayList<>(tempList);
list.add(candidates[i]);
getAnswers(res,candidates,target-candidates[i],list,i);
} else {
break;
}
}
}
}
leetcode 39 组合总和 JAVA的更多相关文章
- [leetcode] 39. 组合总和(Java)(dfs、递归、回溯)
39. 组合总和 直接暴力思路,用dfs+回溯枚举所有可能组合情况.难点在于每个数可取无数次. 我的枚举思路是: 外层枚举答案数组的长度,即枚举解中的数字个数,从1个开始,到target/ min(c ...
- Java实现 LeetCode 39 组合总和
39. 组合总和 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. candidates 中的数字 ...
- [LeetCode] 39. 组合总和
题目链接 : https://leetcode-cn.com/problems/combination-sum/ 题目描述: 给定一个无重复元素的数组 candidates 和一个目标数 target ...
- LeetCode——39. 组合总和
给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. candidates 中的数字可以无限制重复被选 ...
- LeetCode 39. 组合总和(Combination Sum)
题目描述 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. candidates 中的数字可以无限 ...
- leetcode 39. 组合总和(python)
给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. candidates 中的数字可以无限制重复被选 ...
- 【LeetCode】39. 组合总和
39. 组合总和 知识点:递归:回溯:组合:剪枝 题目描述 给定一个无重复元素的正整数数组 candidates 和一个正整数 target ,找出 candidates 中所有可以使数字和为目标数 ...
- Java实现 LeetCode 40 组合总和 II(二)
40. 组合总和 II 给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. candidates 中的每个数字在 ...
- Java实现 LeetCode 377 组合总和 Ⅳ
377. 组合总和 Ⅳ 给定一个由正整数组成且不存在重复数字的数组,找出和为给定目标正整数的组合的个数. 示例: nums = [1, 2, 3] target = 4 所有可能的组合为: (1, 1 ...
随机推荐
- keepalived + nginx实现高可用
1. Keepalived介绍 Keepalived是一个基于VRRP协议来实现的服务高可用方案,可以利用其来避免IP单点故障,类似的工具还有heartbeat.corosync.pacemaker. ...
- Java中异常体系
Java中的异常体系 Throwable,是一个类,表示可抛出的,它是所有的异常都继承的类. Throwable的子类,又分为两种,一种是Error,另一种是Exception. Error一般不是应 ...
- failed to open stream: No such file or directory 报错解决方法
1.首先检查是否是文件名错误(比如有空格):是否因为路径不完整(比如缺少http://,或者缺少文件扩展名.doc等): 2.若是在本地中文名文件打开报错,我就是因为编码不一致导致: Windows中 ...
- HashMap、HashTable的区别
HashMap和HashTable都实现了Map接口,但是要用哪个要分清它们之间的区别. 它们的主要区别:线程安全性.速度 HashMap几乎可以等价于HashTable除了HashMap是非sync ...
- 结对作业——四则运算 Part3. 对于结对编程的总结与思考
结对作业——四则运算 Part3. 对于结对编程的总结与思考 PB15061303 刘梓轩PB16061489 艾寅中 GITHUB 地址 戳这里 目录 Part 1. Core代码编写部分 Part ...
- js常用utils
var utils = { /** * 日期格式化 * * @param {Date} date 指定日期 * @param {String} format * @returns {String} * ...
- QuickSort模板
#include <iostream> using namespace std; struct node { int index; char name[20]; }; node data[ ...
- UVa10859 放置街灯
Placing Lampposts As a part of the mission �Beautification of Dhaka City�, the government has decide ...
- 如何将.pem转换为.crt和.key
如何将.pem转换为.crt和.key? 摘自: https://vimsky.com/article/3608.html 貔貅 技术问答 2017-10-08 23:11 certifica ...
- [欣赏代码片段] (JavaScript) Responsive jQuery
jQuery(document).ready(function($) { /* getting viewport width*/ var responsive_viewport = $(window) ...