题目浅析

  • 想查看原题可以点击题目链接

  • 简单地说,就是给一个整数数组和数字 k,要求其中长度为 k 的子数组数值之和的最大值。

思路分享

代码解答(强烈建议自行解答后再看)

  • 参考题解
1
2
3
4
5
6
7
8
9
10
class Solution:
def maxSubarraySum(self, nums: List[int], k: int) -> int:
pre = accumulate(nums, initial=0)
ans = -inf
min_rec = [inf]*k
for j, num in enumerate(pre):
i = j%k
ans = max(ans, num - min_rec[i])
min_rec[i] = min(min_rec[i], num)
return ans