Função para calcular a soma máxima de um subarray com limite de comprimento
Go
Hard
functions
Tarefa «Função para calcular a soma máxima de um subarray com limite de comprimento»
Escreva uma função MaxSubarraySumWithLimit(nums []int, k int) int, que recebe um array de inteiros nums e um inteiro k (1 ≤ k ≤ len(nums)). A função deve retornar a soma máxima de um subarray contínuo de comprimento não superior a k. Se o array estiver vazio, retorne 0. Implemente um algoritmo com complexidade de tempo O(n).
Formato de Entrada
Na entrada são fornecidos dois números: n (comprimento do array, 0 ≤ n ≤ 10^5) e k (1 ≤ k ≤ n). Em seguida, n números inteiros — os elementos do array (-10^9 ≤ nums[i] ≤ 10^9).
Formato de Saída
Um único número inteiro — a soma máxima do subarray de comprimento não superior a k.
Exemplos
Exemplo 1
ENTRADA
5 3
1 2 3 4 5
SAÍDA
12
Exemplo 2
ENTRADA
4 2
-1 -2 -3 -4
SAÍDA
-1
Exemplo 3
ENTRADA
7
1 2 3 4 5 -1 6
SAÍDA
6
Exemplo 4
ENTRADA
6 4
2 -1 3 4 -2 1
SAÍDA
8
Exemplo 5
ENTRADA
3
-5 10 20
SAÍDA
15
main.go