本文共 504 字,大约阅读时间需要 1 分钟。
题目: * 给一个数组,里边有N个整数,找长度为K(0<K<N)且平均值最大的子数组,并把这个最大值输出来 输入描述: * 6 (N的值) * 1 12 -5 -6 50 3 (含有N个整数的数组) * 4 (K的值) 输出描述:* 12.75
题目很简单,时间复杂度O(N)内解决,就是维持一个长度为K的计算窗口,遍历数组,进来后一个数则减去窗口内的第一个数,保存最大的子数组和。最后除以窗口长度转换为浮点数输出即可。
import java.util.Scanner;public class AverageOfMaxSubArray { public static void main(String[] args) { Scanner in = new Scanner(System.in); int N = Integer.parseInt(in.nextLine()); int[] arr = new int[N]; String str = in.nextLine(); String[] str1 = str.split(" "); for(int i=0; i运行结果: