给一个整数数组,找出平均数最大且长度为 k
的下标连续的子数组,并输出该最大平均数。
public static void main(String[] args) {
int[]arr=new int[]{7,5,2,4,1,6,9,3};
System.out.println(maxAverage(arr,3));
}
private static double maxAverage(int[] arr, int k) {
int sum=0;
for (int i = 0; i < k; i++) {
sum+=arr[i];
}
int maxSum=sum;
for (int i = k; i < arr.length; i++) {
//减去出去的加上新进来的
sum=sum-arr[i-k]+arr[i];
maxSum=Math.max(maxSum,sum);
}
return 1.0*maxSum/k;
}