当前位置: 首页 > article >正文

leetcode-643. 子数组最大平均数 I

文章目录

    • 二 解法
      • 2.1 每次都重新计算
      • 2.2 使用窗口


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

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

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


二 解法

2.1 每次都重新计算

超时

public double findMaxAverage(int[] nums, int k) {
        double res = 0D;


        for (int i = 0; i <= nums.length-k; i++) {
            double curr = 0D;
            
            for (int j = i; j < k + i; j++) {
                curr += nums[j];
            }
            curr = curr / k;
            res = Math.max(res, curr);
        }

        return res;
    }

2.2 使用窗口

6ms

 public double findMaxAverage(int[] nums, int k) {
        double res = -Integer.MAX_VALUE;


        int start = 0;
        int end = 0;
        double acc = 0.0D;

        while (end < nums.length) {
            acc += nums[end];

            if (end - start + 1 < k) {

            } else {
                if (end - start + 1 > k) {
                    acc -= nums[start];
                    start = start + 1;
                }
                res = Math.max(res , acc / k);
            }

            end += 1;     
            
        }
        return res;
    }

http://www.kler.cn/a/383854.html

相关文章:

  • 上下文保护
  • 使用ssh-key免密登录服务器或免密连接git代码仓库网站
  • PMP–一、二、三模、冲刺–分类–7.成本管理–技巧–挣值分析
  • Java+Swing可视化图像处理软件
  • 大模型LLama3!!!Ollama下载、部署和应用(保姆级详细教程)
  • 第07章 运算符的使用
  • Python毕业设计选题:基于Hadoop的租房数据分析系统的设计与实现
  • 右旋圆极化散射后的stocks矢量 与T3矩阵的关系
  • 【UE5】Cesium GlobePawn 如何Fly To
  • YOLOv11融合IncepitonNeXt[CVPR2024]及相关改进思路
  • CertiK发现三星区块链密钥库的高风险漏洞,第3次获得致谢
  • qt QHeaderView详解
  • C++学习笔记----10、模块、头文件及各种主题(一)---- 模块(3)
  • lerna+umi ‘max‘ 不是内部或外部命令,也不是可运行的程序
  • ./bin/mindieservice_daemon启动成功
  • 基于STM32的实时时钟(RTC)教学
  • Spring配置文件初始化加载(一)
  • Redis学习:Redis可重入分布式锁、Redlock算法和底层源码分析
  • 如何用Python精确计算当前时间之前一年、一月和一天
  • golang分布式缓存项目 Day 1
  • rust编写的系统监测器
  • jvm学习笔记-轻量级锁内存模型
  • Vue2 与 Vue3 的区别
  • C++ -- 继承
  • day52 图论章节刷题Part04(110.字符串接龙、105.有向图的完全可达性、106.岛屿的周长 )
  • promise的用法以及注意事项,看了这篇你就会了