Menu
CoddyTech

Target Sum

给你一个由非负整数构成的数组 nums 和一个整数 target。在每个数字前面放一个加号或减号,保持它们的顺序,然后计算表达式。返回能使表达式等于 target 的符号选择有多少种。2^n 种选择都分别计数,因此 +0 和 -0 是两种不同的选择。

函数

findTargetSumWays(nums: integer-array, target: integer) → integer
numsinteger-array
这些数字,每个都会带有一个符号
targetinteger
表达式必须等于的值
返回值integer
表达式等于目标值的符号选择数量

约束条件

  • 1 ≤ nums.length ≤ 20
  • 0 ≤ nums[i] ≤ 1000
  • nums 的总和最多为 1000。
  • -1000 ≤ target ≤ 1000
  • 答案最多为 220,远小于 32 位有符号整数的范围。

示例

输入
nums = [2, 1, 1]target = 2
输出
2
解释
+2 +1 -1 和 +2 -1 +1 都等于 2。给 2 加上负号后,你最多只能得到 -2 + 1 + 1 = 0,所以其他选择都不行。
challenge icon

进阶

当总和索引的数组无法放入内存时,你能处理最多 40 个数,且每个数的值最大为 10^9 吗?

重置代码
def findTargetSumWays(nums, target):
    # 在这里编写代码

测试 #1

测试 #2

测试 #3

参数

nums = [2, 1, 1]
target = 2

预期输出

2