868. 子数组的最大平均值
给定一个由
n
个整数组成的数组,找到给定长度
k
的连续子数组,该子数组具有最大平均值。你需要输出最大平均值。
样例
样例1
输入: nums = [1,12,-5,-6,50,3] and k = 4
输出: 12.75
解释:
最大平均为(12-5-6+50)/4 = 51/4 = 12.75
样例2
输入: nums = [4,2,1,3,3] and k = 2
输出: 3.00
解释:
最大平均为(3+3)/2 = 6/2 = 3.00
注意事项
1 <= k <= n <= 30,000
.
给定数组的元素范围是
[-10,000, 10,000]
。
public class Solution {
/**
* @param nums: an array
* @param k: an integer
* @return: the maximum average value
*/
public double findMaxAverage(int[] nums, int k) {
// Write your code here
int sum = 0;
int flag = Integer.MIN_VALUE;
for (int i = 0; i < k; i++) {
sum = sum + nums[i];
}
for (int i = k; i < nums.length; i++) {
flag = Math.max(flag, sum);
sum = sum - nums[i - k] + nums[i];
}
flag = Math.max(flag, sum);
return flag / (k * 1d);
}
}