# 2090. K Radius Subarray Averages ###### tags: `Leetcode` `Medium` `Prefix Sum` Link: https://leetcode.com/problems/k-radius-subarray-averages/ ## 思路 一定要用long存 求prefix sum然后loop算平均值 ## Code ```java= class Solution { public int[] getAverages(int[] nums, int k) { long[] prefixSum = new long[nums.length]; prefixSum[0] = nums[0]; for(int i = 1;i < nums.length;i++){ prefixSum[i] = prefixSum[i-1]+nums[i]; } int[] ans = new int[nums.length]; for(int i = 0;i < nums.length;i++){ ans[i] = -1; } int center = k; if(2*k >= nums.length) return ans; for(int end = 2*k;end < nums.length;end++){ long sum = prefixSum[end] - ((end-2*k-1>=0)?(prefixSum[end-2*k-1]):0); ans[center++] = (int)(sum/(long)(2*k+1)); } return ans; } } ```