K Radius Subarray Averages LeetCode solution in Java
1class Solution {2public int[] getAverages(int[] nums, int k) {3if (k == 0) return nums;45int N = nums.length;6long[] sum = new long[N];7sum[0] = nums[0];89for (int i = 1; i < N; i++) sum[i] = sum[i - 1] + nums[i]; // Sum of 0 - ith element at sum[i]1011int[] ret = new int[N];12Arrays.fill(ret, -1);1314for (int i = k; i < N - k; i++) // Beyond this range, there are less than k elements so -115{16long temp = (sum[i + k] - sum[i - k] + nums[i - k]) / (k * 2 + 1);17ret[i] = (int) temp;18}19return ret;20}21}