LC 2090 [M] K Radius Subarray Averages - ALawliet/algorithms GitHub Wiki

class Solution:
    def getAverages(self, nums: List[int], k: int) -> List[int]:
        res = [-1] * len(nums)
        l = 0
        window_sum = 0
        radius = 2*k+1 # k to the left +  k to the right + current
        for r in range(len(nums)):
          window_sum += nums[r]
          if (r - l + 1 >= radius):
            res[l+k] = window_sum // radius # start filling in when we have enough
            window_sum -= nums[l]
            l += 1
        return res