參考連接:java
https://blog.csdn.net/smile_YangYue/article/details/78230074數組
import java.util.Scanner; /** * 題目: * 給一個數組,裏邊有N個整數,找長度爲K(0<K<N)且平均值最大的子數組,並把這個最大值輸出來 輸入描述: * 6 (N的值) * 1 12 -5 -6 50 30 (含有N個整數的數組) * 4 (K的值) 輸出描述: * 12.75 * @author Weining * */ public class MaxAverageArray { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n = Integer.parseInt(scanner.nextLine()); int[] array = new int[n]; String[] strArray = scanner.nextLine().split(" "); for (int i=0; i<n; i++) { array[i] = Integer.parseInt(strArray[i]); } int k = Integer.parseInt(scanner.nextLine()); int sum = 0; for (int i=0; i<k; i++) { sum += array[i]; } int max = sum; for (int i=1; i<=n-k; i++) { sum = sum + array[i+k-1] - array[i-1]; max = Math.max(max, sum); } System.out.println("max: " + (float)max/k); } }
6 1 12 -5 -6 50 30 4 max: 17.25
時間複雜度O(n).net