Menu
CoddyTech

Target Sum

Du erhältst ein Array nums aus nicht negativen Ganzzahlen und eine Ganzzahl target. Setze vor jede Zahl ein Plus- oder Minuszeichen, behalte ihre Reihenfolge bei und werte den Ausdruck aus. Gib zurück, wie viele Vorzeichenkombinationen den Ausdruck gleich target machen. Jede der 2^n Kombinationen zählt für sich, daher sind +0 und -0 zwei verschiedene Möglichkeiten.

Funktion

findTargetSumWays(nums: integer-array, target: integer) → integer
numsinteger-array
die Zahlen, von denen jede ein Vorzeichen erhält
targetinteger
der Wert, dem der Ausdruck entsprechen muss
Gibt zurückinteger
die Anzahl der Vorzeichenkombinationen, deren Ausdruck dem Zielwert entspricht

Einschränkungen

  • 1 ≤ nums.length ≤ 20
  • 0 ≤ nums[i] ≤ 1000
  • Die Summe von nums beträgt höchstens 1000.
  • -1000 ≤ target ≤ 1000
  • Die Antwort beträgt höchstens 220 und liegt damit deutlich innerhalb des Bereichs einer vorzeichenbehafteten 32-Bit-Ganzzahl.

Beispiele

Eingabe
nums = [2, 1, 1]target = 2
Ausgabe
2
Erklärung
+2 +1 -1 und +2 -1 +1 ergeben beide 2. Mit einem Minus vor der 2 ist das Höchste, was du erreichen kannst, -2 + 1 + 1 = 0, daher funktioniert keine andere Wahl.
challenge icon

Weiterführende Frage

Kannst du bis zu 40 Zahlen mit Werten bis zu 10^9 verarbeiten, wenn kein nach der Summe indiziertes Array in den Speicher passt?

Code zurücksetzen
def findTargetSumWays(nums, target):
    # Schreibe hier den Code

Test #1

Test #2

Test #3

Argumente

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

Erwartete Ausgabe

2