给一个整数数组,找出平均数最大且长度为 k 的下标连续的子数组,并输出子数组最大平均数。
比如:
输入:[1, 12, -5, -6, 50, 3],k = 4
最大平均数 (12-5-6+50)/4 = 51/4 = 12.75
输出:12.75
public static double findMaxAverage(int[] nums, int k) {
int sum = 0;
int n = nums.length;
for (int i = 0; i < k; i++) {
sum += nums[i];
}
int max = sum;
for (int i = k; i < n; i++) {
sum = sum + nums[i] - nums[i - k];
max = Math.max(max, sum);
}
return 1.0 * max / k;
}
System.out.println(findMaxAverage(new int[]{1, 12, -5, -6, 50, 3}, 4)); // 12.75