Here is my solution to the problem.

from typing import List

def subarray_sum_fixed(nums: List[int], k: int) → int:

ans = 0

for i in range(len(nums)-k):

ans = max(ans, sum(nums[i:i+k]) )

return ans

If I’m not mistaken, that’s `O(kn)`

solution, which, still in theory is `O(n)`

, but in practice it is slower than original solution because you are unnecessarily running another `for`

-loop on each iteration (the 2nd `for`

being “masked” by `sum()`

call)

```
max_sum = 0
for r in range(k, len(nums)):
max_sum = max(max_sum, sum(nums[r-k:r]))
return max_sum
```

It would be nice to handle edge case scenarios.

example if nums= [10,20,0, 9] and k = 10