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


相关文章
|
前端开发 JavaScript API
React Draggable 实现拖拽 - 最详细中文教程 - 卡拉云
React Draggable 是 react 生态中,最好用的拖拽实现库之一。如果你的应用中需要实现拖拽功能,可以尝试用 react-draggable,它可以满足多数情况下的拖拽需求,比如一个弹出设置浮窗,可以相互遮挡的容器之类。在所有 react 拖拽库里(即 react dnd, drag and drop),react-draggable 算是把功能性和易用性平衡得最好的拖拽库了。
3856 0
|
分布式数据库 Hbase
hbase源码系列(六)HMaster启动过程
这一章是server端开始的第一章,有兴趣的朋友先去看一下hbase的架构图,我专门从网上弄下来的。
2173 0
|
存储 C语言 Python
函数的前世今生1系列
函数的前世今生1系列
|
存储 应用服务中间件 数据库
Servlet请求转发和重定向
Servlet请求转发和重定向
340 0
|
固态存储 KVM 数据安全/隐私保护
|
Java Android开发
【Java异常】非法字符“\ufeff”
【Java异常】非法字符“\ufeff”
178 0
|
算法 搜索推荐
带你读《2022技术人的百宝黑皮书》——生成式重排在内容推荐中的应用实践(3)
带你读《2022技术人的百宝黑皮书》——生成式重排在内容推荐中的应用实践(3)
236 0
|
Ubuntu Docker Windows
Docker和虚拟机的区别
Docker和虚拟机的区别
206 0
|
设计模式 JSON 数据建模
知识图谱模式设计模式与原则
知识图谱是一种非常强大的表示工具,它可以通过一张图表达复杂的概念,这就是为什么常说“一图胜千言”。但是,如果我们在没有明确定义的模式下创建知识图谱,就会存在一些问题。这就是为什么需要一种模式来限制链接的类型,充当文档,提供和机器可读的语义,并确保软件按照预期的方式来组织信息。 对于知识图谱而言,良好的模式设计比关系数据库更为重要和核心。不幸的是,对于如何完成相对简单的任务而言,目前缺乏详细的指导。根据我的经验,我想至少提供一些帮助。
387 0
|
数据库 索引
数据库命名规范
数据库命名规范
1353 0