Menu
CoddyTech

Target Sum

Você recebe um array nums de inteiros não negativos e um inteiro target. Coloque um sinal de mais ou de menos na frente de cada número, mantenha a ordem e avalie a expressão. Retorne quantas escolhas de sinais fazem a expressão ser igual a target. Cada uma das 2^n escolhas conta individualmente, então +0 e -0 são duas escolhas diferentes.

Função

findTargetSumWays(nums: integer-array, target: integer) → integer
numsinteger-array
os números, cada um dos quais recebe um sinal
targetinteger
o valor ao qual a expressão deve ser igual
Retornainteger
o número de escolhas de sinal cuja expressão é igual ao alvo

Restrições

  • 1 ≤ nums.length ≤ 20
  • 0 ≤ nums[i] ≤ 1000
  • A soma de nums é no máximo 1000.
  • -1000 ≤ target ≤ 1000
  • A resposta é, no máximo, 220, bem abaixo do limite de um inteiro com sinal de 32 bits.

Exemplos

Entrada
nums = [2, 1, 1]target = 2
Saída
2
Explicação
+2 +1 -1 e +2 -1 +1 ambos são iguais a 2. Com um sinal de menos no 2, o máximo que você pode alcançar é -2 + 1 + 1 = 0, então nenhuma outra escolha funciona.
challenge icon

Para ir além

Você consegue lidar com até 40 números com valores de até 10^9, quando nenhum array indexado pela soma cabe na memória?

Redefinir código
def findTargetSumWays(nums, target):
    # Escreva o código aqui

Teste #1

Teste #2

Teste #3

Argumentos

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

Saída Esperada

2