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

leetcode643. 子数组最大平均数 I

一、题目描述

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

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

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

示例 1:

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

输入:nums = [5], k = 1
输出:5.00000

提示:

n == nums.length
1 <= k <= n <= 105
-104 <= nums[i] <= 104

二、题目解析

1、暴力,双重for循环

class Solution {public double findMaxAverage(int[] nums, int k) {if(nums == null || nums.length < k){return 0;}double sum = 0,max = Integer.MIN_VALUE;int count = 0;for(int i = 0;i <= nums.length - k;i++){sum = nums[i];count = 1;for(int temp = i + 1;count < k && temp < nums.length;count++,temp++){sum += nums[temp];}max = sum > max ? sum : max;}return max / k;}
}

时间复杂度O((n-k+1)*k),空间复杂度O(1)
运行超时
在这里插入图片描述
2、滑动窗口
思考在1基础上,内层for循环可以优化,第一次拿到前4个元素,形成初始窗口,后面向右滑动即可,每次右入1个元素,左出1个元素;在滑动的过程中不断更新最大值。

class Solution {public double findMaxAverage(int[] nums, int k) {if(nums == null || nums.length < k){return 0;}double sum = 0,max = Integer.MIN_VALUE;int count = 0;//i指的是右边界的可能位置,故最大值是nums.length - 1for(int i = 0;i < nums.length;i++){//右边新的元素进入窗口sum += nums[i];//初始化窗口时,窗口大小不足k则扩充if(i < k - 1){continue;}//更新最大值max = sum > max ? sum : max;//最左边元素离开窗口sum -= nums[i - k + 1];}return max / k;}
}

时间复杂度O(n),空间复杂度O(1)
在这里插入图片描述

http://www.dtcms.com/a/358316.html

相关文章:

  • AI-调查研究-65-机器人 机械臂控制技术的前世今生:从PLC到MPC
  • vscode+cmake+mingw64+opencv环境配置
  • wpf之依赖属性
  • 具有类人先验知识的 Affordance-觉察机器人灵巧抓取
  • C++_多态和虚构
  • 卡片一放,服务直达!实现信息零层级触达
  • Python实现京东商品数据自动化采集的实用指南
  • (双指针)Leetcode283.移动零-替换数字类别+Leetcode15. 三数之和
  • UI前端大数据可视化实战策略:如何设计符合用户认知的数据可视化界面?
  • 【计算机网络】HTTP是什么?
  • Ansible Playbook 调试与预演指南:从语法检查到连通性排查
  • 一体化步进伺服电机在汽车线束焊接设备中的应用案例
  • MongoDB 源码编译与调试:深入理解存储引擎设计 内容详细
  • HarmonyOS元服务开发
  • 深入解析HarmonyOS:UIAbility与Page的生命周期协同
  • TensorFlow 面试题及详细答案 120道(71-80)-- 性能优化与调试
  • 坚鹏请教DEEPSEEK:请问中国领先的AI智能体服务商有哪些?知行学
  • 深度学习系列 | Seq2Seq端到端翻译模型
  • 离线大文件与断点续传:ABP + TUS + MinIO/S3
  • IAR工程如何搭建vscode+clangd编辑环境
  • 如何使用快照将 AWS OpenSearch 服务中的数据从开发环境复制到生产环境
  • 互联网医院系统优势介绍
  • 嵌入式linux相机(2)
  • 设计模式 - 静态工厂模式 + 策略模式,
  • 【Java后端】MySQL 常见 SQL 语句优化指南
  • AI 赋能综合能源管理系统:开启智慧能源新时代
  • 掌握表单:React中的受控组件与表单处理
  • 详解Vue2、Vue3与React的Diff算法
  • 【Android】OkHttp发起GET请求 POST请求
  • React Router 6 获取路由参数