給定 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]
public class Main {
public static void main(String[] args) {
int[] in = {1, 12, -5, -6, 50, 3};
int k = 4;
int sum = 0;
int n = in.length;
// 求出初始K個數組大小的總數
for (int i = 0; i < k; i++) {
sum = sum + in[i];
}
int maxSum = sum;
// 遍歷從K開始知道最大值之間的值,求出總體數組中最大的值
for (int i = k; i < n; i++) {
//減去最小值,加上最大值,來回和sum值比較,用來更新max值
sum = sum - in[i - k] + in[i];
// 比較獲取最大值
maxSum = Math.max(maxSum, sum);
}
float averageValue = maxSum * 1.0F / k;
System.out.println(averageValue);
}
}