Menu
CoddyTech

Target Sum

Se te da un arreglo nums de enteros no negativos y un entero target. Coloca un signo más o menos delante de cada número, conserva su orden y evalúa la expresión. Devuelve cuántas elecciones de signos hacen que la expresión sea igual a target. Cada una de las 2^n elecciones cuenta por separado, así que +0 y -0 son dos elecciones diferentes.

Función

findTargetSumWays(nums: integer-array, target: integer) → integer
numsinteger-array
los números, cada uno de los cuales recibe un signo
targetinteger
el valor que debe tener la expresión
Devuelveinteger
el número de opciones de signo cuya expresión es igual al objetivo

Restricciones

  • 1 ≤ nums.length ≤ 20
  • 0 ≤ nums[i] ≤ 1000
  • The suma de nums es como máximo 1000.
  • -1000 ≤ target ≤ 1000
  • La respuesta es como máximo 220, muy por debajo del límite de un entero con signo de 32 bits.

Ejemplos

Entrada
nums = [2, 1, 1]target = 2
Salida
2
Explicación
+2 +1 -1 y +2 -1 +1 son iguales a 2. Con un signo menos en el 2, lo máximo que puedes alcanzar es -2 + 1 + 1 = 0, así que ninguna otra opción funciona.
challenge icon

Para ir más allá

¿Puedes manejar hasta 40 números con valores de hasta 10^9, cuando ningún arreglo indexado por la suma cabe en la memoria?

Restablecer código
def findTargetSumWays(nums, target):
    # Escribe el código aquí

Prueba #1

Prueba #2

Prueba #3

Argumentos

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

Salida Esperada

2