P16-子数组最大平均数-滑动窗口
作者:互联网
//子数组最大平均数 /* * 给一个整数数组,找出平均数最大且长度为k的下标连续的子数组,并输出该最大平均数 * 输入 [1,12,-5,-6,50,3], k=4 * 输出12.75 * (12-5-6+50)/4 * */ public class P16 { public static void main(String[] args) { System.out.println(findMaxAverage(new int[]{1,12,-5,-6,50,3}, 4)); } //滑动窗口 public static double findMaxAverage(int[] nums, int k){ int sum = 0; int n = nums.length; //先统计第一个窗口的和 for (int i = 0; i < k; i++) { sum += nums[i]; } int max = sum; for(int i=k; i<n; i++){ //移动 sum = sum - nums[i-k] + nums[i]; max = Math.max(sum, max); } return 1.0 * max / k; } }
标签:12,nums,int,平均数,sum,P16,滑动,public 来源: https://www.cnblogs.com/YonchanLew/p/16129179.html