Leetcode643子数组最大平均数 I
给定 n 个整数,找出平均数最大且长度为 k 的连续子数组,并输出该最大平均数。
示例 1:
输入: [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]。
上一次刚好写了一篇滑动窗口的题,这次又遇见了(Leetcode532kdiff数对) 思路是先求出来最开始的窗口大小,然后向右遍历,i++,每k个数是一个窗口。
public double findMaxAverage(int[] nums
, int k
) {
int sum
=0;
int max
=-1000001;
for(int i
=0;i
<k
;i
++){
sum
+=nums
[i
];
}
int ans
=sum
;
for(int j
=1;j
+k
-1<nums
.length
;j
++){
sum
=sum
-nums
[j
-1]+nums
[j
+k
-1];
ans
=Math
.max(ans
,sum
);
}
return (double)ans
/k
;