643. 子数组最大平均数 I

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_35356190/article/details/82903781

给定 n 个整数,找出平均数最大且长度为 k 的连续子数组,并输出该最大平均数。

示例 1:

输入: [1,12,-5,-6,50,3], k = 4
输出: 12.75
解释: 最大平均数 (12-5-6+50)/4 = 51/4 = 12.75

注意:

  1. 1 <= k <= n <= 30,000。
  2. 所给数据范围 [-10,000,10,000]。
class Solution {
    public double findMaxAverage(int[] nums, int k) {
        if(nums.length<k || k<1){
            return 0;
        }
        double sum=0.0,temp=0.0;
        for(int i=0;i<nums.length;++i){
            if(i<k){
                sum+=nums[i];
                temp=sum;
            }else{
                temp+=nums[i];
                temp-=nums[i-k];
                if(temp>sum){
                    sum=temp;
                }
            }
        }
        return sum/k;
    }
}

刷水题好爽,稍微用一点动态规划的思想就解决了。

多熟悉API吧。

猜你喜欢

转载自blog.csdn.net/qq_35356190/article/details/82903781