Fonction de calcul de la somme maximale d’un sous-tableau avec une limitation de longueur

Go Hard functions

Tâche «Fonction de calcul de la somme maximale d’un sous-tableau avec une limitation de longueur»

Écrivez une fonction MaxSubarraySumWithLimit(nums []int, k int) int qui prend un tableau d’entiers nums et un entier k (1 ≤ k ≤ len(nums)). La fonction doit retourner la somme maximale d’un sous-tableau contigu de longueur au plus k. Si le tableau est vide, retourner 0. Implémentez un algorithme avec une complexité temporelle O(n).

Format d\ entrée

En entrée, deux nombres sont donnés : n (longueur du tableau, 0 ≤ n ≤ 10^5) et k (1 ≤ k ≤ n). Ensuite, n entiers — les éléments du tableau (-10^9 ≤ nums[i] ≤ 10^9).

Format de sortie

Un seul entier — la somme maximale d’un sous-tableau de longueur au plus k.

Exemples

Exemple 1

ENTRÉE
5 3 1 2 3 4 5
SORTIE
12

Exemple 2

ENTRÉE
4 2 -1 -2 -3 -4
SORTIE
-1

Exemple 3

ENTRÉE
7 1 2 3 4 5 -1 6
SORTIE
6

Exemple 4

ENTRÉE
6 4 2 -1 3 4 -2 1
SORTIE
8

Exemple 5

ENTRÉE
3 -5 10 20
SORTIE
15
main.go