LeetCode算法题-Maximum Average Subarray I(Java实现)

扫地机器人视觉+IMU融合导航路径规划技术详解 本文介绍了基于视觉-惯性里程计(VIO)的扫地机器人自主导航系统。系统硬件由RGB摄像头、IMU传感器和编码器组成,软件架构采用分层设计,包括传感器数据采集层、数据融合层、SLAM定位层和路径规划层。核心技术包括:1)融合视觉特征提取(ORB算法)与IMU预积分的VIO;2)基于栅格地图的SLAM构建;3)结合A*全局规划和动态窗口法(DWA)局部避障的路径规划。文章提供了完整的Python实现代码,涵盖传感器数据融合、特征匹配和运动估计等关键功能模块。该系统实现了扫地机器人的精准定位和环境感知能力。 阅读详情

这是悦乐书的第278次更新,第294篇原创

01 看题和准备

今天介绍的是LeetCode算法题中Easy级别的第146题(顺位题号是643)。给定由n个整数组成的数组,找到具有最大平均值的长度为k的连续子数组,并输出最大平均值。例如:

输入:[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]范围内。

本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 64位系统,使用Java语言编写和测试。

02 第一种解法

因为是取连续的子数组,所以不需要对数组进行排序。我们可以先使用一个数组sum,长度与nums一致,将nums中的元素累加的和存起来,然后再去算k个元素之和时,使用sum中的元素做减法,找出其中的最大值,最后算出平均数即可。

public double findMaxAverage(int[] nums, int k) {
    // 存放数组元素之和
    int[] sum = new int[nums.length];
    // 第一位就是数组的第一个元素
    sum[0] = nums[0];
    for (int i=1; i<nums.length; i++) {
        // 从第二位开始,前i个元素之和为sum中的前一个元素与数组的当前元素
        sum[i] = sum[i-1] + nums[i];
    }
    // 第k-1位,就是nums中0到k位元素之和
    double result = sum[k-1]*1.0/k;
    for (int i=k; i<nums.length; i++) {
        // 计算平均值,找出最大值
        result = Math.max(result, (sum[i]-sum[i-k])*1.0/k);
    }
    return result;
}

03 第二种解法

针对上面第一种解法,我们其实也没必要把每组元素的和存起来,只需要存一组k个元素之和即可。然后再计算其他组k个元素时,去掉前面k个元素的头部元素,并且在尾部加上新的元素,就变成了新的一组k个元素之和,就像滑动的窗户一样,窗口大小不变,首尾元素做更新。

public double findMaxAverage(int[] nums, int k) {
    double sum = 0;
    // 先求出前k个元素之和
    for (int i=0; i<k; i++) {
        sum += nums[i];
    }
    // 将最开始的k歌元素之和赋值给result
    double result = sum;
    for (int i=k; i<nums.length; i++) {
        // 减去sum的左边元素,加上右边元素,变成1到k+1位元素之和
        sum += nums[i]-nums[i-k];
        // 比较大小,取最大
        result = Math.max(result, sum);
    }
    return result/k;
}

04 小结

算法专题目前已日更超过四个月,算法题文章146+篇,公众号对话框回复【数据结构与算法】、【算法】、【数据结构】中的任一关键词,获取系列文章合集。

以上就是全部内容,如果大家有什么好的解法思路、建议或者其他问题,可以下方留言交流,点赞、留言、转发就是对我最大的回报和支持!

绕开华为通道,获取解锁码解锁BootLoader 刷机有风险,操作需谨慎,如果因为各种因素导致手机变砖无法开机,本教程概不负责,望悉知 前言 这篇文章的大多内容是根据我自己找的一篇文章《绕开华为通道,获取解锁码解锁BootLoader》来编写的,里面的大部分内容是文章的原内容。下面的都是我参考文章中做了一些小部分的修改,增加了我华为P8手机的一些操作,下面开始讲述我的解锁过程。 因为华为官方在2018年的七八月份吧,关闭了解锁码的申请通道,这... 阅读详情

相关推荐

TekTronix 高速信号完整性基础以及测试方法分析

如果信号速率比较高,则CTLE与FFE都无法满足要求,尤其是大于10G,比如USB3.1Gen2 10Gbps,PCIe4.0 16Gbps,这些场合都会采用DFE均衡,DFE的优点是,它既可以识别当前比特,并且可以判决前面的n个比特(Tap的阶数越高,看到的前面的比特数越多),根据前面比特的变化来计算出要处理当前比特所要变化的幅度,来补偿由于前面比特变化所引起的信号幅度的变化。10G以下,一般都不太关心这个串扰,高于10G的信号,会发现相互之间的串扰越来越明显,已经成为引起误码的重要的原因之一。

weixin_45365488的博客 4141

Python刷题:简单数组(四)

16.Contains DuplicateⅡ     Given an array of integers and an integer k, find out whether there are two distinct indices i and j in the array such that nums[i] = nums[j] and the absolute difference be...

zhtysw的博客 921

吃透 AM32 无人机电调:从源码架构到工作原理的全方位解析(附实践指南)(中)

介绍了三相电机控制中的SVPWM算法实现及保护机制设计。SVPWM部分详细解析了电压矢量扇区判断、占空比计算和过调制保护,通过限制占空比范围(0-100%)防止电机失控,并提供了完整的代码实现。保护模块则重点分析了过流、过压/欠压、过温三种保护机制,采用分级处理策略(硬保护停机/软保护降功率)确保系统安全。此外,文章还介绍了参数管理模块在STM32 Flash中的存储方案,包括参数定义、数据结构和读写操作,为电机控制系统提供了完整的解决方案。

bother3000的博客 1388

LeetCode编程题 java

1.无重复字符的最长子串:给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。 import java.util.HashSet; import java.util.Set; public class Solution{ public static int lengthOfLongestSubstring(String s) { // 哈希集合,记录每个字符是否出现过 Set<Character> occ = new HashS...

sarracode的博客 1152

Pulpino SoC中挂载AXI从机接口的自定义IP说明

AXI 从机接口挂载 Pulpino SoC 调试Pulpino SoC中挂载AXI从机接口的自定义IP说明PULPion SoC介绍自定义AXI IP挂载IP挂载框图代码修改脚本修改自定义AXI IP调试C语言编写软件调试硬件调试 Pulpino SoC中挂载AXI从机接口的自定义IP说明 本篇文章主要从工程的角度描述了如何将具有AXI从机接口的自定义IP挂载到Pulpino SoC上,其中不涉及到SoC中的任何原理知识。 PULPion SoC介绍 PULPion SoC整体架构如下图所示, PULPi

小陈的芯片学习之路 2208

mtk-drm commit送显流程(二):内核态atomic_commit实现解析

本文深入解析了mtk-drm框架中atomic_commit机制的内核态实现流程,详细介绍了从用户态触发到硬件提交的完整调用链,包括状态检查、硬件提交等关键阶段。特别分析了MTK平台在动态刷新率、内存带宽优化等方面的特有实现策略,为开发者提供了调试技巧和常见问题解决方案。

weixin_30839881的博客 1305

编程实现一个LRU算法

这一题要我们设计一个LRU(最近最少使用算法),我的思路是用一个hash表加一个双向链表实现,其插入,删除,获取节点时间复杂度均在O(1),代码如下 class LRUCache { public: struct node { int key; int val; node* front; node* next; node() : val(0), front(NULL), ...

qq_41445952的博客 794

可微编程:当深度学习遇见物理定律,重塑科学计算新范式

本文探讨了可微编程如何将深度学习与物理定律相结合,重塑科学计算范式。通过自动微分技术,它将物理方程融入可微计算图,使模型在数据驱动的同时遵守物理约束。文章以神经常微分方程为例,阐述了其在连续系统建模、科学模拟器优化等领域的应用,并分析了当前面临的挑战与最佳实践路径。

weixin_29056145的博客 134

leetcode 643. Maximum Average Subarray I

Given an array consisting of n integers, find the contiguous subarray of given length k that has the maximum average value. And you need to output the maximum average value. Example 1: Input:

淡然坊 443

【人工智能】在 cc-switch 中配置 AnyRouter 接入 Claude Code 完整指南

本文介绍了在cc-switch工具中配置AnyRouter中转服务以接入Claude Code的详细步骤。主要内容包括:1) 准备API令牌和端点地址;2) 填写基础信息和模型参数;3) 保存配置并重启终端生效;4) 常见问题排查方法。重点强调了API地址格式、模型ID准确性以及配置写入的必要性,帮助用户顺利完成中转服务配置,实现Claude 4.5版本的正常使用。

奶爸的编程之路,也就一周冷个三天 3103

Python数据分析师必备:OpenClaw开启Pandas清洗脚本自动生成新时代

本文介绍了OpenClaw这一AI智能体框架如何帮助Python数据分析师高效完成数据清洗工作。OpenClaw通过自然语言交互理解用户需求,自动生成Pandas清洗脚本,显著提升了数据清洗效率,降低了技术门槛。文章详细阐述了OpenClaw的工作原理、实战应用步骤及其在电商、金融、医疗等行业中的成功案例。相比传统手动编写脚本方式,OpenClaw能快速生成规范准确的清洗代码,使数据分析师能更专注于业务洞察。该工具为数据驱动决策提供了可靠支持,是数据分析领域的重要创新。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 230

【Leetcode】643. Maximum Average Subarray I(Easy)

1.题目Given an array consisting of n integers, find the contiguous subarray of given length k that has the maximum average value. And you need to output the maximum average value.Example 1:Input: [1,12,...

不想做菜鸟的小螃蟹 303

PointNet++改进策略目录

后续我将如何使用文章中创新点加入的PointNet++中代码实现部分进行更新。

u012901740的博客 2195

Leetcode——643. Maximum Average Subarray I

题目原址 https://leetcode.com/problems/maximum-average-subarray-i/description/ 题目描述 Given an array consisting of n integers, find the contiguous subarray of given length k that has the maximum averag...

想当厨子的程序媛 266

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

643. Maximum Average Subarray I

643. Maximum Average Subarray I

weixin_45428910的博客 516

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

LeetCode 643. Maximum Average Subarray I

LeetCode 643. Maximum Average Subarray I (Easy) 主要知识点:prefix sum,sliding window;优先级:4

温迪今天刷题了吗 458

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

[leetcode] 643. Maximum Average Subarray I

题目:Given an array consisting of n integers, find the contiguous subarray of given length k that has the maximum average value. And you need to output the maximum average value.Example 1:Input: [1,12,-...

jing16337305的博客 194

[LeetCode]643. Maximum Average Subarray I

https://leetcode.com/problems/maximum-average-subarray-i/#/description 找出连续k个数平均值最大的那个平均值,注意注释! public class Solution { public double findMaxAverage(int[] nums, int k)

gqk289的专栏 508

LeetCode 643. 子数组最大平均数 I(Maximum Average Subarray I)

643. 子数组最大平均数 I 643. Maximum Average Subarray I 题目描述 给定 n 个整数,找出平均数最大且长度为 k 的连续子数组,并输出该最大平均数。 LeetCode643. Maximum Average Subarray I 示例 1: 输入: [1,12,-5,-6,50,3], k = 4 输出: 12.75 解释: 最大平均数 (12-5-6+50)...

weixin_30315905的博客 235

Leetcode 643. Maximum Average Subarray I

文章作者:Tyan 博客:noahsnail.com &nbsp;|&nbsp; 优快云 &nbsp;|&nbsp; 简书 1. Description 2. Solution class Solution { public: double findMaxAverage(vector&lt;int&gt;&amp; nums, int k) { d...

SnailTyan 349

leetcode 643. Maximum Average Subarray I | 643. 子数组最大平均数 I(Java)

题目 https://leetcode-cn.com/problems/maximum-average-subarray-i/ 题解 滑动窗口解法,示意图: 另外,double 计算比 int 要慢,所以中间记录的值要设成 int 型,最后返回的时候再转换成 double class Solution { public double findMaxAverage(int[] nums, int k) { int maxSum = 0; int curSum = 0

寒泉 5万+

Leetcode 643. Maximum Average Subarray I 最大平均区间 解题报告

1 前言回归了,语言不定,可能是Python(新的题目),也可能是Java(旧的题目),形式可能会更加简单了,就这样,有空再说Given an array consisting of n integers, find the contiguous subarray of given length k that has the maximum average value. And you need t

MebiuW的专栏 2537

Leetcode--Java--643. Maximum Average Subarray I

题目描述 You are given an integer array nums consisting of n elements, and an integer k. Find a contiguous subarray whose length is equal to k that has the maximum average value and return this value. Any answer with a calculation error less than 10-5 will be

Sherlock的博客 206

LeetCode.643 Maximum Average Subarray I

题目: Given an array consisting of n integers, find the contiguous subarray of given length k that has the maximum average value. And you need to output the maximum average value. Example 1:

侠客小虎的博客 321

LeetCode Maximum Average Subarray I

原题链接在这里:https://leetcode.com/problems/maximum-average-subarray-i/description/ 题目: Given an array consisting ofnintegers, find the contiguous subarray of given lengthkthat has the maximum average...

weixin_30908941的博客 52
上一篇: LeetCode算法题-Average of Levels in Binary Tree(Java实现)
下一篇: LeetCode算法题-Set Mismatch(Java实现)
程序员小川
博客等级 码龄10年 47粉丝 305原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值