643.子数组最大平均数

简介: 643.子数组最大平均数

题目:给你一个由 n 个元素组成的整数数组 nums 和一个整数k。

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

任何误差小于10^-5 的答案都将被视为正确答案。

             

解题思路:规定了子数组的长度为k,因此可以通过寻找子数组的最大元素和的方式寻找子数组的最大平均数,元素和最大的子数组对应的平均数也是最大的。

为了找到子数组的最大元素和,需要对数组中的每个长度为k的子数组分别计算元素和。对于长度为n 的数组,当 k≤n 时,有 n−k+1 个长度为 k 的子数组。如果直接计算每个子数组的元素和,则时间复杂度过高,无法通过全部测试用例,因此需要使用时间复杂度更低的方法计算每个子数组的元素和。

class Solution{
    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;
    }
}


相关文章
|
6月前
82: 求组合数
82: 求组合数
|
11月前
|
算法 测试技术 C#
C++前缀和算法的应用:统计中位数为 K 的子数组
C++前缀和算法的应用:统计中位数为 K 的子数组
|
4月前
|
C++
643. 子数组最大平均数 I(C++)
643. 子数组最大平均数 I(C++)
|
4月前
1685. 有序数组中差绝对值之和
1685. 有序数组中差绝对值之和
|
6月前
|
机器学习/深度学习 算法 测试技术
【线段树】【区间更新】2916. 子数组不同元素数目的平方和 II
【线段树】【区间更新】2916. 子数组不同元素数目的平方和 II
【线段树】【区间更新】2916. 子数组不同元素数目的平方和 II
|
6月前
leetcode:643. 子数组最大平均数 I(滑动窗口)
leetcode:643. 子数组最大平均数 I(滑动窗口)
33 0
|
Java
寻找两个有序数组的中位数
寻找两个有序数组的中位数
103 0
|
人工智能 算法
有序数组的平方
有序数组的平方
|
人工智能 算法
刷题之寻找 3 个数的最大乘积和拼数及四平方和
刷题之寻找 3 个数的最大乘积和拼数及四平方和
137 0
每日一题——乘积小于 K 的子数组
每日一题——乘积小于 K 的子数组
75 0
每日一题——乘积小于 K 的子数组