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;
    }
}


相关文章
|
算法 测试技术 C#
C++前缀和算法的应用:统计中位数为 K 的子数组
C++前缀和算法的应用:统计中位数为 K 的子数组
|
5月前
|
C++
643. 子数组最大平均数 I(C++)
643. 子数组最大平均数 I(C++)
|
5月前
1685. 有序数组中差绝对值之和
1685. 有序数组中差绝对值之和
|
7月前
|
机器学习/深度学习 算法 测试技术
【线段树】【区间更新】2916. 子数组不同元素数目的平方和 II
【线段树】【区间更新】2916. 子数组不同元素数目的平方和 II
【线段树】【区间更新】2916. 子数组不同元素数目的平方和 II
迭代法解决递推问题:数列和,sinx,ex的近似值
迭代法解决递推问题:数列和,sinx,ex的近似值
127 0
|
7月前
leetcode:643. 子数组最大平均数 I(滑动窗口)
leetcode:643. 子数组最大平均数 I(滑动窗口)
38 0
|
算法 编译器
LeetCode4-寻找两个有序数组的中位数
LeetCode4-寻找两个有序数组的中位数
|
Java
寻找两个有序数组的中位数
寻找两个有序数组的中位数
113 0
|
人工智能 算法
有序数组的平方
有序数组的平方
|
算法 API
leetcode:4.寻找两个有序数组的中位数
题目比较好理解,如果只看最后结果的话,很容易想到把两个数组合并,并且排序后就可以轻松的找到中位数,但这样不符合题目的意思
92 0