LeetCode 643.子数组最大平均数 I
题目:
给你一个由 n
个元素组成的整数数组 nums
和一个整数 k
。
请你找出平均数最大且 长度为 k
的连续子数组,并输出该最大平均数。
任何误差小于 10-5
的答案都将被视为正确答案。
思路:定长滑动窗口 入 更新 出
代码:
class Solution {
public double findMaxAverage(int[] nums, int k) {
int n = nums.length;
double ans = Integer.MIN_VALUE;
double sum = 0.0;
double mid_result = 0.0;
for (int i = 0; i < n; i++) {
// 入
sum += nums[i];
if (i < k - 1)
continue;
mid_result = sum / k;
// 更新
ans = Math.max(ans, mid_result);
// 出
sum -= nums[i - k + 1];
}
return ans;
}
}
性能:
时间复杂度o(n)
空间复杂度o(1)