---
title: "2090. K Radius Subarray Averages"
url: "https://laigary.com/interview/coding/2090-k-radius-subarray-averages"
type: "note"
section: "coding"
date: "2025-03-24"
updated: "2025-10-22"
tags: ["Prefix Sum"]
---

# 2090. K Radius Subarray Averages

[2090\. K Radius Subarray Averages](https://leetcode.com/problems/k-radius-subarray-averages/)

這個題目的重點是細心處理邊界問題。

```python
class Solution:
    def getAverages(self, nums: List[int], k: int) -> List[int]:
        
        
        prefix = [nums[0]]
        for i in range(1, len(nums)):
            prefix.append(prefix[i - 1] + nums[i])
        
        res = []
        
        n = len(prefix)
        for i in range(n):
            if i - k >= 0 and i + k < n:
                tmp = (prefix[i + k] - prefix[i - k] + nums[i - k]) // (2 * k + 1)
                res.append(tmp)
            else:
                res.append(-1)
        
        return res

```
```python
class Solution:
    def getAverages(self, nums: List[int], k: int) -> List[int]:
        
        prefix = [nums[0]]
        n = len(nums)
        for i in range(1, n):
            prefix.append(prefix[i-1] + nums[i])
        
        res = [-1] * n

        for i in range(k, n - k):
            res[i] = (prefix[i + k] - prefix[i - k] + nums[i-k])//(2*k+1)
        
        return res
```
