求子数组最大平均数--算法

求子数组最大平均数[我的解法,思路在代码注释中]

 

 官方的解法[下面有图解]

 

 

第二组和第一组之和比较最大值,结果是第二组51大

 

第3组和上组比较最大值51比较,明显结果还是51大 

 

第4组和上组比较最大值51比较,明显结果还是51大 

 

第5组和上组比较最大值51比较,明显结果还是51大

 

最后求子数组最大平均数

  public double findMaxAverage(int[] nums, int k) {
        int sum = 0;
        int n = nums.length;
        for (int i = 0; i < k; i++) {
            sum += nums[i];
        }
        int maxSum = sum;
        for (int i = k; i < n; i++) {
            sum = sum - nums[i - k] + nums[i];
            maxSum = Math.max(maxSum, sum);
        }
        return 1.0 * maxSum / k;
    }


作者:LeetCode-Solution
链接:https://leetcode-cn.com/problems/maximum-average-subarray-i/solution/zi-shu-zu-zui-da-ping-jun-shu-i-by-leetc-us1k/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  

posted @ 2021-02-04 14:06  骚哥  阅读(187)  评论(0编辑  收藏  举报