Функция вычисления максимальной суммы подмассива с ограничением на длину
Go
Сложный
functions
Задача «Функция вычисления максимальной суммы подмассива с ограничением на длину»
Напишите функцию MaxSubarraySumWithLimit(nums []int, k int) int, которая принимает целочисленный массив nums и целое число k (1 ≤ k ≤ len(nums)). Функция должна вернуть максимальную сумму непрерывного подмассива длины не более k. Если массив пуст, вернуть 0. Реализуйте алгоритм с временной сложностью O(n).
Формат ввода
На вход подаются два числа: n (длина массива, 0 ≤ n ≤ 10^5) и k (1 ≤ k ≤ n). Затем n целых чисел — элементы массива (-10^9 ≤ nums[i] ≤ 10^9).
Формат вывода
Одно целое число — максимальная сумма подмассива длины не более k.
Примеры
Пример 1
ВВОД
5 3
1 2 3 4 5
ВЫВОД
12
Пример 2
ВВОД
4 2
-1 -2 -3 -4
ВЫВОД
-1
Пример 3
ВВОД
7
1 2 3 4 5 -1 6
ВЫВОД
6
Пример 4
ВВОД
6 4
2 -1 3 4 -2 1
ВЫВОД
8
Пример 5
ВВОД
3
-5 10 20
ВЫВОД
15
main.go