描述
给你一个由 n 个元素组成的整数数组 nums 和一个整数 k 。
请你找出平均数最大且 长度为 k 的连续子数组,并输出该最大平均数。
任何误差小于 10-5 的答案都将被视为正确答案。
分析
确认滑动窗口的左边界,在窗口移动的过程中,计算新的窗口平均值
class Solution {
public double findMaxAverage(int[] nums, int k) {
int left = 0;
double ans = 0, sum = 0;
int n = nums.length;
for (int i = 0; i < k; i++){
sum += nums[i];
}
ans = sum / k;
for (int i = k; i < n; i++) {
sum += nums[i] - nums[left];
ans = Math.max(ans,sum / k);
left++;
}
return ans;
}
}