思路
滑动窗口,此处窗口大小为2*k+1
解题过程
创建一个长度为nums.length的数组,先将全部元素赋值为-1,然后进行就是滑动窗口的一般思路
注意:当k=0时,直接就是返回数组本身
Code
class Solution {public int[] getAverages(int[] nums, int k) {if (k==0) return nums;long len=2*k+1;int n=nums.length;int ans[]=new int[n];Arrays.fill(ans,-1);int l=0,r=0;long sum=0;while(r<n){sum+=nums[r++];if(r-l<len) continue;ans[(l+r-1)/2]=(int) (sum/len);sum-=nums[l++];}return ans;}
}作者:菜卷
链接:https://leetcode.cn/problems/k-radius-subarray-averages/solutions/3030281/ban-jing-wei-k-de-zi-shu-zu-ping-jun-zhi-pkuq/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。