【华为机试】2023年真题B卷(python)-滑动窗口最大值

一、题目

题目描述:

有一个N个整数的数组,和一个长度为M的窗口,窗口从数组内的第一个数开始滑动直到窗口不能滑动为止, 每次窗口滑动产生一个窗口和(窗口内所有数的和),求窗口滑动产生的所有窗口和的最大值。

二、输入输出

输入描述:
第一行输入一个正整数N,表示整数个数。(0<N<100000) 
第二行输入N个整数,整数的取值范围为[-100,100]。 
第三行输入一个正整数M,M代表窗口的大小,M<=100000,且M<=N。
输出描述:
窗口滑动产生所有窗口和的最大值。

三、示例

示例1:
输入输出示例仅供调试,后台判题数据一般不包含示例
输入:
6
12 10 20 30 15 23
3
输出:
68

四、要求

时间限制:C/C++ 1秒,其他语言 2秒
空间限制:C/C++262144K,其他语言524288K

五、解题思路

这个问题可以使用滑动窗口的方法来解决。我们可以维护一个窗口,窗口的大小为M。初始时,窗口从数组的第一个数开始滑动。

首先,我们计算初始窗口内所有数的和,记为current_sum。

然后,我们依次将窗口向右滑动,每次滑动时,将窗口右边的数加入窗口,同时将窗口左边的数移出窗口。我们更新current_sum为新窗口内所有数的和。

在每次滑动时,我们比较current_sum与当前最大窗口和的值,如果current_sum更大,则更新最大窗口和的值。

最后,当窗口无法再滑动时,返回最大窗口和作为结果。

六、参考代码 

# -*- coding: utf-8 -*-
'''
@File    :   2023-B-滑动窗口最大值.py
@Time    :   2023/12/29 19:38:15
@Author  :   mgc 
@Version :   1.0
@Desc    :   None
'''def max_window_sum(N, nums, M):if N <= 0 or M <= 0 or M > N:return None# 计算初始窗口内所有数的和current_sum = sum(nums[:M])max_sum = current_sum# 滑动窗口for i in range(M, N):current_sum = current_sum - nums[i - M] + nums[i]max_sum = max(max_sum, current_sum)return max_sum# 读取输入
N = int(input())
nums = list(map(int, input().split()))
M = int(input())# 计算最大窗口和
result = max_window_sum(N, nums, M)
print(result)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/589243.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python为何适合开发AI项目?

Python在人工智能&#xff08;AI&#xff09;项目中的流行和广泛应用归因于多个因素&#xff0c;其中一些主要原因包括&#xff1a; 1、易学易用&#xff1a; Python语法简洁清晰&#xff0c;易于学习和理解。这使得新手能够更容易上手&#xff0c;并且对于处理复杂的AI算法和…

GitHub Copilot的快速入门

GitHub Copilot 是一个由 OpenAI 和 GitHub 合作开发的人工智能编程助手&#xff0c;它可以帮助你更快地编写代码。要开始使用 GitHub Copilot&#xff0c;请按照以下步骤操作&#xff1a; 安装 GitHub Copilot&#xff1a; 首先&#xff0c;确保你已经安装了 Visual Studio Co…

电缆厂 3D 可视化管控系统 | 图扑数字孪生

图扑软件(Hightopo)专注于 Web 的 2D&3D 可视化&#xff0c;自主研发 2D&3D 图形渲染引擎、数据孪生应用开发平台和开发工具&#xff0c;广泛应用于 2D&3D 可视化、工业组态与数字孪生领域&#xff0c;图扑软件为工业物联网、楼宇、场馆、园区、数据中心、工厂、电…

shell编程一

shell 定义 Shell 也是一种程序设计语言&#xff0c;它有变量&#xff0c;关键字&#xff0c;各种控制语句&#xff0c;有自己的语法结构&#xff0c;利用shell程序设计语 可以编写功能强、代码简短的程序 #! Shebang 定义解释器 shell的分类和切换 # cat /etc/shells /bin/sh…

C语言学习----存储类别

存储类别 &#x1f33f;本文是C Primer Pluse 中文版第12章的部分内容整理 &#x1f331;主要是围绕C中作用域 链接 存储期 展开 &#xff0c;是后面进行多文件管理的基础~ &#x1f308;概要 &#x1f34e;明确对象 变量名 标识符的基本概念和含义 &#x1f350;作用域和链接描…

ES6之Reflect详解

✨ 专栏介绍 在现代Web开发中&#xff0c;JavaScript已经成为了不可或缺的一部分。它不仅可以为网页增加交互性和动态性&#xff0c;还可以在后端开发中使用Node.js构建高效的服务器端应用程序。作为一种灵活且易学的脚本语言&#xff0c;JavaScript具有广泛的应用场景&#x…

MATLAB --- 如何对 hold on 和 hold off 绘制的图像进行保存

要将通过 hold on 和 hold off 绘制的图像保存起来&#xff0c;可以使用 saveas 函数 将图像保存为指定的文件格式 例如&#xff1a; % 在这里是你的绘图代码&#xff0c;包括 hold on 和 hold off% 保存图像 saveas(gcf, plot.png, png);参数&#xff1a; gcf&#xff1a; …

JVM老年代内存优化

参考&#xff1a; 老年代持续增长&#xff0c;无法触发 mixed gc 的解决方案_java老年代一直增长-CSDN博客 java老年代越来越大 jvm老年代爆满_mob64ca13f63f2c的技术博客_51CTO博客 【JVM调优】内存溢出CPU占用过高:问题排查解决方案复盘_wx5e479319a1db4的技术博客_51CTO博…

2023年度学习总结

想想大一刚开始在CSDN写作&#xff0c;这一坚持&#xff0c;就是我在CSDN的第九个年头&#xff0c;这也是在CSDN最有里程碑的一年&#xff0c;这一年我被评为CSDN的博客专家啦&#xff01;先是被评为Unity开发领域新星创作者&#xff0c;写的关于一部分Unity开发的心得获得大家…

MATLAB --- fullfile()函数的用法

fullfile() 是 MATLAB 中用于构建完整文件路径的函数, 它可以根据操作系统的不同自动选择适当的文件分隔符 用法&#xff1a; fullpath fullfile(folder, file1, file2, ...) 参数说明&#xff1a; folder&#xff1a;文件夹的路径file1, file2, ...&#xff1a;要连接到…

ES应用_ES实战

依靠知识库使用es总结一些使用技巧。 1 快速入门 ES是将查询语句写成类似json的形式&#xff0c;通过关键字进行查询和调用。 1.1 创建 下面创建了一个主分片为5&#xff0c;副本分片为1的ES结构。ES本身是一种noschema的结构&#xff0c;但是可以通过指定mapping编程schema的…

【深度学习:Convolutional Neural Networks】卷积神经网络入门指南

【深度学习&#xff1a;Convolutional Neural Networks】卷积神经网络入门指南 介绍为什么选择ConvNets而不是前馈神经网络&#xff1f;Input Image 输入图像基本架构Convolution Layer 卷积层 — 内核Pooling Layer 池化层Classification — Fully Connected Layer (FC Layer)…

《Webpack5 升级》- Vue2.x 组件库 Webpack3 升 5

前言 基于 Vue2.x 的项目和组件库开发于 2019 年 &#xff0c;那时对 Webpack 版本没有概念&#xff0c;项目和组件库的版本混乱…有的使用 v3&#xff0c;有的使用 v4… 对于现今 2023 年&#xff08;或 2024 年&#xff09;的整个生态环境是不够用的&#xff0c;无法使用较新…

如何加入到接单的大家庭,这个方法很简单~!方法A

第一步&#xff1a; 进某宝 搜 C语言代写 然后点销量 你把前4名的客服找到 问他们是某招技术 如果他们乐意&#xff0c;你就进他们的圈子。

Mybatis底层原理分析以及源码阅读

费话不多少先上图&#xff0c;我只喜欢画图分析&#xff0c;看图片&#xff1a; 有两个问题&#xff1a; 问题1&#xff1a; 我们一直在写Mapper/DAO只写了接口&#xff0c;没有写具体的实现吧&#xff1f; 【是的】 问题2&#xff1a; 没有写实现类就没办法实例化执行后续的操…

基于Matlab的各种图像滤波Filter算法(代码开源)

前言&#xff1a;本文为手把手教学 Matlab 平台下的各种图像滤波算法的教程&#xff0c;将编程代码与图像滤波知识相联系&#xff0c;以实战为例&#xff01;博客中图像滤波算法包含&#xff1a;均值滤波、中值滤波、高斯滤波、双边滤波、引导滤波。图像滤波算法是计算机视觉领…

【基础】【Python网络爬虫】【6.数据持久化】Excel、Json、Csv 数据保存(附大量案例代码)(建议收藏)

Python网络爬虫基础 数据持久化&#xff08;数据保存&#xff09;1. Excel创建数据表批量数据写入读取表格数据案例 - 豆瓣保存 Excel案例 - 网易新闻Excel保存 2. Json数据序列化和反序列化中文指定案例 - 豆瓣保存Json案例 - Json保存 3. Csv写入csv列表数据案例 - 豆瓣列表保…

【Spring】AOP原来如此

AOP概述 什么是AOP的技术&#xff1f; 在软件业&#xff0c;AOP为Aspect Oriented Programming的缩写&#xff0c;意为&#xff1a;面向切面编程AOP是一种编程范式&#xff0c;隶属于软工范畴&#xff0c;指导开发者如何组织程序结构AOP最早由AOP联盟的组织提出的,制定了一套…

Golang - 执行shell脚本,实时输出shell脚本中的日志

Golang - 执行shell脚本&#xff0c;实时输出shell脚本中的日志&#xff1a; package mainimport ("bufio""fmt""io""os/exec""strings" )func SafetyShell(execName string, arg ...string) (string, error) {ex : exec.…

摩尔线程S80对于软件的支持

摩尔线程对软件的支持 时间&#xff1a;2024年1月1日 显卡型号&#xff1a;MTT S80 主板型号&#xff1a;七彩虹 igame z590 火神 V20 CPU&#xff1a; intel core i5 10400f 内存&#xff1a; 海盗船3600 16*2 存储&#xff1a; 致态1Tb nvme 显卡的驱动是最新的。 游戏 S…