643. 子数组最大平均数 I
Difficulty: 简单
给定 n
个整数,找出平均数最大且长度为 k
的连续子数组,并输出该最大平均数。
示例:
输入:[1,12,-5,-6,50,3], k = 4
输出:12.75
解释:最大平均数 (12-5-6+50)/4 = 51/4 = 12.75
提示:
- 1 <=
k
<=n
<= 30,000。 - 所给数据范围 [-10,000,10,000]。
Solution
Language: java
class Solution {
public double findMaxAverage(int[] nums, int k) {
Double max = null, t = max;
for(int left=0, right=0, sum=0; right<nums.length; right++){
sum += nums[right];
if(right - left + 1 >= k){
if(max == null) max = sum*1.0 / k;
else max = (t = sum*1.0/k) - max > 0 ? t : max;
sum -= nums[left++];
}
}
return max;
}
}