当前为游客只读模式。登录后可提交代码判题并保存草稿与进度。

练题计划 · 力扣 HOT 100

组合总和

中等combinationSum()
时间限制 2000 ms内存限制 128 MB复杂度要求 时间 O(2^t),空间 O(target)

组合总和

给你一个无重复元素的整数数组 candidates 和一个目标整数 target,找出 candidates 中可以使数字和为目标数 target 的所有不同组合,并以列表形式返回。可以按任意顺序返回这些组合。

candidates 中的同一个数字可以无限制重复被选取。如果至少一个数字的被选数量不同,则两种组合是不同的。

约定

  • 数组中所有元素互不相同。
  • 每个组合内部的数字按非降序排列。
  • 组合之间顺序任意。

输入

  • candidates:无重复正整数数组,1 ≤ candidates.length ≤ 30,1 ≤ candidates[i] ≤ 200
  • target:目标整数,1 ≤ target ≤ 500

输出

所有和为 target 的组合组成的二维数组。

示例一

输入:

candidates = [2,3,6,7], target = 7

输出:

[[2,2,3],[7]]

示例二

输入:

candidates = [2,3,5], target = 8

输出:

[[2,2,2,2],[2,3,3],[3,5]]

示例三

输入:

candidates = [2], target = 1

输出:

[]

复杂度要求

  • 时间复杂度:O(2^t),t 为目标值相关的搜索树深度
  • 空间复杂度:O(target)
Loading...

输入

[[2,3,6,7],7]

预期输出

[[2,2,3],[7]]
自定义用例