Menu
CoddyTech

Target Sum

Otrzymujesz tablicę nums zawierającą nieujemne liczby całkowite oraz liczbę całkowitą target. Umieść znak plusa lub minusa przed każdą liczbą, zachowaj ich kolejność i oblicz wartość wyrażenia. Zwróć liczbę wyborów znaków, dla których wyrażenie jest równe target. Każdy z 2^n wyborów liczy się osobno, więc +0 i -0 to dwa różne wybory.

Funkcja

findTargetSumWays(nums: integer-array, target: integer) → integer
numsinteger-array
liczby, z których każda otrzymuje znak
targetinteger
wartość, której musi być równe wyrażenie
Zwracainteger
liczba wyborów znaku, których wyrażenie jest równe wartości docelowej

Ograniczenia

  • 1 ≤ nums.length ≤ 20
  • 0 ≤ nums[i] ≤ 1000
  • Suma nums wynosi co najwyżej 1000.
  • -1000 ≤ target ≤ 1000
  • Odpowiedź wynosi najwyżej 220, znacznie poniżej zakresu 32-bitowej liczby całkowitej ze znakiem.

Przykłady

Wejście
nums = [2, 1, 1]target = 2
Wyjście
2
Wyjaśnienie
+2 +1 -1 i +2 -1 +1 są równe 2. Z minusem przy 2 największy wynik, jaki możesz uzyskać, to -2 + 1 + 1 = 0, więc żaden inny wybór nie zadziała.
challenge icon

Pytanie dodatkowe

Czy poradzisz sobie z maksymalnie 40 liczbami o wartościach do 10^9, gdy żadna tablica indeksowana sumą nie zmieści się w pamięci?

Zresetuj kod
def findTargetSumWays(nums, target):
    # Napisz kod tutaj

Test #1

Test #2

Test #3

Argumenty

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

Oczekiwany wynik

2