【LeetCode】第643题——子数组最大平均数I(难度:简单)

  • 题目描述
  • 解题思路
  • 代码详解
  • 注意点

题目描述

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

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

提示:
1 <= k <= n <= 30,000。
所给数据范围 [-10,000,10,000]。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/maximum-average-subarray-i
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路

滑窗,开辟一个长度为k的窗口,移动时去除最左侧的数字并引入最右侧的数字,对每个窗口求均值并找出最大均值即可。

代码详解

class Solution {public double findMaxAverage(int[] nums, int k) {double sum = 0;    // 窗口求和// 第一个for先把第一个窗口(即前k个)数字的均值求出,作为max_mean的最初始值for(int i = 0; i < k; ++i) {sum += nums[i];}double max_mean = sum / k;  // 记录均值的最大值,初始值为前k个数字的均值for(int i = k; i < nums.length; ++i) { // 从下标为k的元素开始遍历sum = sum + nums[i] - nums[i-k];   // 窗口滑动,窗口元素的和等于加上新元素的值并减去去除元素的值if(sum / k > max_mean) {  // 如果新窗口的均值更大,则保留max_mean = sum / k;}}return max_mean;}
}

注意点

  • 最简单、最容易想的滑窗策略,是一道基础滑窗题,必须弄清楚原理。

【LeetCode】第643题——子数组最大平均数I(难度:简单)相关推荐

  1. 643、子数组最大平均数 I

    643.子数组最大平均数 I 题目: 给定 n 个整数,找出平均数最大且长度为 k 的连续子数组,并输出该最大平均数. 示例: 输入:[1,12,-5,-6,50,3], k = 4 输出:12.75 ...

  2. 【每日一题】 643. 子数组最大平均数 I

    [每日一题] 643. 子数组最大平均数 I 避免每日太过咸鱼,一天搞定一道LeetCode算法题 一.题目描述 难度: 简单 给定 n 个整数,找出平均数最大且长度为 k 的连续子数组,并输出该最大 ...

  3. Leetcode滑窗系列(java):643. 子数组最大平均数 I

    Leetcode滑窗系列(java):643. 子数组最大平均数 I(新手小白仅供参考) 题目来源 leetcode 题目描述 个人思路 创建一个滑窗,将其值的和作为作为判断基准 然后滑窗的左右边界各 ...

  4. 【LeetCode】643. 子数组最大平均数 I

    class Solution1 {/*643. 子数组最大平均数 I给你一个由 n 个元素组成的整数数组 nums 和一个整数 k .请你找出平均数最大且 长度为 k 的连续子数组,并输出该最大平均数 ...

  5. 643. 子数组最大平均数 I

    链接:643. 子数组最大平均数 I 题解:https://leetcode-cn.com/problems/maximum-average-subarray-i/solution/jing-dian ...

  6. LeetCode - 644 子数组最大平均数 II

    目录 题目来源 题目描述 示例 提示 题目解析 算法源码 题目来源 644. 子数组最大平均数 II - 力扣(LeetCode) 题目描述 给定一个包含 n 个整数的数组nums,找到最大平均值的连 ...

  7. LeetCode简单题之子数组最大平均数 I

    题目 给你一个由 n 个元素组成的整数数组 nums 和一个整数 k . 请你找出平均数最大且 长度为 k 的连续子数组,并输出该最大平均数. 任何误差小于 10-5 的答案都将被视为正确答案. 示例 ...

  8. LeetCode 523. 连续的子数组和(求余 哈希)

    1. 题目 给定一个包含非负数的数组和一个目标整数 k,编写一个函数来判断该数组是否含有连续的子数组,其大小至少为 2,总和为 k 的倍数,即总和为 n*k,其中 n 也是一个整数. 示例 1: 输入 ...

  9. 算法题 子数组之和为零

    lintcode 138 子数组之和为零 给定一个整数数组,找到和为零的子数组.你的代码应该返回满足要求的子数组的起始位置和结束位置 这里给定是思路是这样的,依次求数组nums的前缀和,其前缀和的数组 ...

最新文章

  1. 从程序员到CTO都应该了解的一些技术趋势
  2. 物理内存和虚拟内存的区别 及 什么是虚拟地址空间
  3. ActiveMQ_安全配置(五)
  4. 嘉实多RO150合成齿轮油
  5. 表现与数据分离;前台MVC
  6. 自学Linux命令的四种方法
  7. MaxCompute问答整理之2020-03月
  8. 阿里云推出“磐久”云原生服务器系列 能效和交付效率大幅提升
  9. 快乐大本营中测试声音年龄的软件_海天味极鲜酱油极限挑战宝藏行 终极试炼,极限成员们勇登珠峰大本营...
  10. 支付宝架构师眼中的高并发架构,真是绝了!
  11. PHP之数组函数(2)
  12. sprintf函数用法详解
  13. python 集合字典_frozenset defaultdict MD5在线加密解密工具
  14. 09SpringBoot web 错误处理
  15. mysql 按拼音码查询,MySQL拼音首字母查询
  16. 摄像头焦距与摄像范围的关系表
  17. 【dgl学习】dgl中edges.src/edges.dst/edges.data解释
  18. IPV6----升级点,地址分类及部分协议配置
  19. scal 解析json字符串
  20. VIP_OSP--基于Thrift的RPC框架的基本原理

热门文章

  1. 跨端融合!探索前沿科技无限可能,深圳腾讯2018TLC大会再度来袭,早鸟票半价最后4天!
  2. 大厂面经丨Nginx 面试 40 问
  3. 全闪存存储的数据库加速场景应用
  4. Mysql 查询数据库数据量
  5. matlab水汽通量,降水成因诊断分析水汽通量水汽通量散度可降水量.pptx
  6. 建筑行业现行相关税收政策及优惠措施汇编
  7. 这些“新职业”到底好不好干?听听过来人怎么说
  8. python笔记本电脑推荐2020_最新版:2020年适合程序员的推荐笔记本电脑
  9. 这是一份普通的cpp答卷,可能有错
  10. java json设置编码_java-JSON字符编码