Menu
CoddyTech

Longest Subarray with Sum K

Gegeben sind die Ganzzahlen nums und ein Zielwert k. Gib die Länge des längsten Teilarrays zurück, dessen Elemente zusammen genau k ergeben. Ein Teilarray ist eine Folge aufeinanderfolgender Elemente mit einer Länge von mindestens eins. Einige Werte können null oder kleiner als null sein. Wenn die Summe eines Teilarrays nicht k ergibt, gib 0 zurück.

Funktion

longestSubarrayWithSumK(nums: integer-array, k: integer) → integer
numsinteger-array
die zu durchsuchenden Ganzzahlen, einschließlich negativer Zahlen und Nullen
kinteger
die genaue Summe, die das Teilarray haben muss
Gibt zurückinteger
die Länge des längsten Teilarrays, dessen Summe k ergibt, oder 0, wenn es keines gibt

Einschränkungen

  • 1 ≤ nums.length ≤ 2 × 104
  • -104 ≤ nums[i] ≤ 104
  • -109 ≤ k ≤ 109
  • Jede Präfixsumme liegt zwischen -2 × 108 und 2 × 108, daher reichen 32-Bit-Ganzzahlen aus.
  • Gib 0 zurück, wenn kein Teilarray die Summe k ergibt.

Beispiele

Eingabe
nums = [2, -1, 3, 1, -4, 2, 3]k = 5
Ausgabe
5
Erklärung
Drei Läufe ergeben zusammen 5: [2, 3] am Ende, [2, -1, 3, 1] am Anfang und [3, 1, -4, 2, 3] an den Indizes 2 bis 6. Der letzte ist mit 5 Elementen der längste.
challenge icon

Weiterführende Frage

Wie würdest du das längste Teilarray finden, dessen Summe höchstens k beträgt, wobei negative Werte weiterhin erlaubt sind?

Code zurücksetzen
def longestSubarrayWithSumK(nums, k):
    # Schreibe hier den Code

Test #1

Test #2

Test #3

Argumente

nums = [2, -1, 3, 1, -4, 2, 3]
k = 5

Erwartete Ausgabe

5