首页 > 试题广场 >

加起来和为目标值的组合

[编程题]加起来和为目标值的组合
  • 热度指数:3150 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个无重复元素的正整数数组 nums 和一个正整数 target ,找出 nums 中所有可以使数字之和为目标数 target 的组合,nums 中的数可以重复选取,只要选出的组合中有一个数不同则视为是不同组合。


数据范围:数组长度满足 , 数组中的元素满足 ,保证组合数结果少于 150 个
示例1

输入

1,[1]

输出

[[1]]
示例2

输入

5,[1,4,5]

输出

[[1,4],[5],[1,1,1,1,1]]
示例3

输入

5,[2]

输出

[]
头像 fred-coder
发表于 2021-12-19 23:42:10
递归,可重复选取一个元素,由于不能有重复的数组出现,则当符合条件时,进行排序判断是否已在结果数组中 # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param target int整型 # @param nums int整型一维数组 # @ret 展开全文
头像 觅杳
发表于 2023-05-08 22:09:51
可以重复选取,递归,重复选取第一个元素,直到到达结果或者大于结果 import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 展开全文
头像 S_sherry
发表于 2022-01-30 10:56:22
回溯,nums排序后,当sum+nums[i]>target时提前结束递归。 public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param t 展开全文
头像 牛客768685351号
发表于 2022-03-13 11:24:15
先对数组进行排序,排序之后进行回溯思路来搜索; 因为元素可以重复,说明每次搜索可以从当前点开始搜索; class Solution { private: vector<vector<int>> res; vector<int> path; 展开全文
头像 姐姐的遮阳伞
发表于 2022-03-29 17:25:00
import java.util.*; public class Solution { public class ComparaInteger implements Comparator<Integer> { @Override pu 展开全文
头像 2ez4me
发表于 2022-04-01 11:44:11
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param target int整型 * @p 展开全文
头像 CCNWY
发表于 2022-10-19 00:13:30
package main /**  * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可  *  *   * @param target int整型    展开全文
头像 永往直前
发表于 2023-04-18 22:08:35
import java.util.*; public class Solution { private ArrayList<ArrayList<Integer>> res = new ArrayList<>(); /** * 代码 展开全文
头像 腻o
发表于 2022-05-07 11:56:13
用回溯法解决目标值组合问题 一、NC238 加起来和为目标值的组合 class Solution: def combinationCount(self , target: int, nums: List[int]) -> List[List[int]]: # write 展开全文
头像 Kuris
发表于 2022-08-03 20:37:03
元素无重复,可重复选,组合问题,可采用回溯算法并进行剪枝即可,具体如下: import java.util.*; public class Solution {     ArrayList<ArrayList 展开全文