计算长度受限的最大子数组和的函数
Go
Hard
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