Funktion zur Berechnung der maximalen Summe eines Teilarrays mit Längenbegrenzung

Go Hard functions

Aufgabe «Funktion zur Berechnung der maximalen Summe eines Teilarrays mit Längenbegrenzung»

Schreiben Sie eine Funktion MaxSubarraySumWithLimit(nums []int, k int) int, die ein Integer-Array nums und eine ganze Zahl k (1 ≤ k ≤ len(nums)) entgegennimmt. Die Funktion soll die maximale Summe eines zusammenhängenden Teilarrays mit einer Länge von höchstens k zurückgeben. Wenn das Array leer ist, geben Sie 0 zurück. Implementieren Sie einen Algorithmus mit einer Zeitkomplexität von O(n).

Eingabeformat

Als Eingabe werden zwei Zahlen gegeben: n (Länge des Arrays, 0 ≤ n ≤ 10^5) und k (1 ≤ k ≤ n). Dann folgen n ganze Zahlen — die Elemente des Arrays (-10^9 ≤ nums[i] ≤ 10^9).

Ausgabeformat

Eine ganze Zahl — die maximale Summe des Teilarrays mit einer Länge von höchstens k.

Beispiele

Beispiel 1

EINGABE
5 3 1 2 3 4 5
AUSGABE
12

Beispiel 2

EINGABE
4 2 -1 -2 -3 -4
AUSGABE
-1

Beispiel 3

EINGABE
7 1 2 3 4 5 -1 6
AUSGABE
6

Beispiel 4

EINGABE
6 4 2 -1 3 4 -2 1
AUSGABE
8

Beispiel 5

EINGABE
3 -5 10 20
AUSGABE
15
main.go