python每日一题——11滑动窗口最大值
题目
给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值 。
示例 1:
输入:nums = [1,3,-1,-3,5,3,6,7], k = 3
输出:[3,3,5,5,6,7]
示例 2:
输入:nums = [1], k = 1
输出:[1]
答案
题目要求我们实现一个函数,该函数接受一个整数数组 nums 和一个整数 k,其中 k 是滑动窗口的大小。函数会返回一个数组,该数组包含滑动窗口在遍历 nums 数组过程中每个位置的最大值。
我们可以使用双端队列(deque)来解决这个问题。双端队列可以从两端添加和删除元素。我们可以维护一个双端队列,该队列中存储的是滑动窗口中的最小值。队列的头部元素始终是当前滑动窗口的最小值。当滑动窗口向右移动时,我们将新的元素添加到队列的尾部,并删除队列头部的元素(如果它不再在滑动窗口中)。这样,队列头部的元素始终是当前滑动窗口的最大值。
下面是一个实现这个算法的 Python 代码:
from collections import dequedef max_in_sliding_window(nums, k):# 初始化结果数组和双端队列res = []dq = deque()# 遍历整个数组for i in range(len(nums)):# 如果队列中的第一个元素不再在滑动窗口中,将其移出队列if i - k + 1 >= 0 and nums[i - k + 1] in dq:dq.remove(nums[i - k + 1])# 如果队列为空,将当前元素添加到队列中if not dq:dq.append(nums[i])else:# 如果当前元素大于队列中的所有元素,将队列中的所有元素替换为当前元素while dq and nums[i] > dq[0]:dq.popleft()dq.append(nums[i])# 如果当前位置超过了滑动窗口的大小,将队列中的第一个元素移出队列if i >= k - 1:res.append(dq[0])return res
在这个代码中,我们首先从 collections 模块导入 deque 类。然后,我们定义了一个名为 max_in_sliding_window 的函数,该函数接受一个整数数组 nums 和一个整数 k 作为参数。我们首先初始化一个空的双端队列 dq 和一个空的结果数组 res。然后,我们遍历整个 nums 数组。在每个位置,我们首先检查队列中的第一个元素是否仍然在滑动窗口中。如果不在,我们将其从队列中移出。然后,我们将当前元素与队列中的元素进行比较。如果当前元素比队列中的所有元素都大,我们将队列中的所有元素替换为当前元素。最后,我们将当前位置的元素添加到结果数组中,如果当前位置超过了滑动窗口的大小。
相关文章:
python每日一题——11滑动窗口最大值
题目 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值 。 示例 1: 输入:nums [1,3,-1,-3,5,3,6,7], k 3…...
【C++ 程序设计入门基础】- 第3节-循环结构01
目录 循环结构 一、for 语句 for 循环案例 输入一个整数n,输出1~n的所有整数。 编译运行,查看输出结果 编译调试 for 循环结构语义分析 二、beak 语句 三、continue 语句 案例1: 案例2: 案例3: 循环…...
人工智能原理复习--知识表示(一)
文章目录 上一篇知识概述命题逻辑谓词逻辑谓词逻辑的应用 下一篇 上一篇 人工智能原理复习–绪论 知识概述 知识就是人类认识自然界的精神产物,是人类进行智能活动的基础。 是经过加工的信息,包括事实、信念和启发式规则。 分类: 按作用可…...
网络运维与网络安全 学习笔记2023.11.28
网络运维与网络安全 学习笔记 第二十九天 今日目标 OSPF汇总之域间路由、OSPF汇总之外部路由、OSPF链路认证 OSPF安全认证之区域认证、OSPF虚链路 OSPF汇总指域间路由 项目背景 企业内网运行多区域的OSPF网络,在R1 上存在多个不稳定的链路 R1上的不稳定链路&a…...
Rust开发——数据对象的内存布局
枚举与Sized 数据 一般数据类型的布局是其大小(size)、对齐方式(align)及其字段的相对偏移量。 1. 枚举(Enum)的布局: 枚举类型在内存中的布局通常是由编译器来确定的。不同的编译器可能有不…...
mySQL踩坑记录
1.MYSQL Workbench-8.0.27.1出现"Exception: Current profile has no WMI enabled"错误的解决方法 MYSQL Workbench-8.0.27.1出现“Exception: Current profile has no WMI enabled“错误的解决方法_赛风扥的博客-CSDN博客 C:\Program Files\MySQL\MySQL Workbench …...
【Java】使用 IDEA 快速生成 SpringBoot 模块
项目目录下新建 module 模块 在 pom.xml 更改为 spring initializr 配置之后的 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchem…...
2023网络安全产业图谱
1. 前言 2023年7月10日,嘶吼安全产业研究院联合国家网络安全产业园区(通州园)正式发布《嘶吼2023网络安全产业图谱》。 嘶吼安全产业研究院根据当前网络安全发展规划与趋势发布《嘶吼2023网络安全产业图谱》调研,旨在进一步了解…...
一则 MongoDB 副本集迁移实操案例
文中详细阐述了通过全量 增量 Oplog 的迁移方式,完成一套副本集 MongoDB 迁移的全过程。 作者:张然,DBA 数据库技术爱好者~ 爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 本文约 900…...
2022年03月 Scratch图形化(四级)真题解析#中国电子学会#全国青少年软件编程等级考试
Scratch等级考试(1~4级)全部真题・点这里 一、单选题(共10题,每题2分,共30分) 第1题 由1,2,3,4,5,0这六个数字经过排列组合能够组成多少个六位数偶数?注意:每一位都不相同,最高位不能为0。 A:720 B:360 C:312 D:88 答案:C 逻辑知识单选题 第2题 运行以下程…...
传音荣获2023首届全国人工智能应用场景创新挑战赛“智能家居专项赛”三等奖
近日,中国人工智能学会与科技部新一代人工智能发展研究中心联合举办2023首届全国人工智能应用场景创新挑战赛(2023 1st China’s Innovation Challenge on Artificial Intelligence Application Scene,以下简称CICAS 2023),吸引了…...
SQL注入-SQL注入过程
SQL注入的过程 手工注入过程 (1) 判断是否存在注入点; (2) 判断字段长度(字段数); (3) 判断字段回显位置; (4) 判断数据库信息; (5) 查找数据库名; (6) 查找数据库表; (7) 查找数据库表中所有字段以及字段值; (8) 猜解账号密码; (9) 登录管理员后台; 以sql-labs less-2举例 会…...
选择更灵活的设计工具:SOLIDWORKS 软件网络版与单机版的比较
随着科技的飞速发展,工程设计领域对于高效、灵活的设计工具需求日益增加。SOLIDWORKS 作为一款广受欢迎的三维设计软件,提供了网络版和单机版两种选择。在本文中,我们将深入探讨这两个版本的区别,并为您详细介绍它们的价格差异。 …...
Go语言中获取协程ID
简介 java同事都知道,线程会有对应的id,那么go语言中协程有id吗,其实是有的,但是不建议使用。 实在需要使用的话可以使用本文的例子获取 stack 我们先看一下runtime.Stack打印出来的栈结构,其中就包括了协程id fu…...
CH58x-BLE 程序阅读笔记
CH58x-BLE 程序阅读笔记 1. 广播1.1 广播类型设置1.2 广播数据长度 2. MTU设置2.1 CH58x 蓝牙协议栈支持有效最大MTU为247 1. 广播 1.1 广播类型设置 1.2 广播数据长度 1) GAP-广播数据(最大大小31字节,但最好保持较短以节省广告时的电量&a…...
ST53xx 系列是一种高精度、高输入电压、低静态电流、高速度、低压差线性稳压器
ST53xxS/T 40V,低静态电流,高可靠性 LDO 概述: ST53xx 系列是一种高精度、高输入电压、低静态电流、高速度、低压差线性稳压器,具有高纹波抑制能力。在 Vour 5V VIN 7V 时,输入电压高达40V,负载电流高达300…...
麻雀搜索优化算法MATLAB实现,SSA-BP网络
对于麻雀搜索算法的介绍,网上已经有不少资料了,这边公布SSA的matlab实现 下面展示SSA算法的核心代码以及详细注解 % 麻雀搜索算法函数定义 % 输入:种群大小(pop),最大迭代次数(Max_iter),搜索空间下界(lb),…...
142. 环形链表 II --力扣 --JAVA
题目 给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使…...
深入浅出 Vue 中的插槽 slot
深入浅出 Vue 中的插槽 slot start 最近被问到好几次 Vue 中的插槽相关知识,掌握的还是有些不全面。抱着重新学习的心态,写这篇博客。首先对基础知识做一个回顾,然后再对源码实现做一个学习。作者:番茄编写时间:2023…...
postgreSQL 查询所有模式的语句
场景 postgre 数据库下携带模式的分组 sql select schema_name from information_schema.schemata;...
AccelStepper:Arduino步进电机精准控制与多轴协同解决方案
AccelStepper:Arduino步进电机精准控制与多轴协同解决方案 【免费下载链接】AccelStepper Fork of AccelStepper 项目地址: https://gitcode.com/gh_mirrors/acc/AccelStepper 在自动化控制领域,步进电机的精准驱动是实现精密运动的核心。AccelSt…...
程序员副业图谱
引言:程序员副业的现状与趋势程序员副业需求增长的背景(技术变现、职业发展多元化)CSDN作为技术社区在副业生态中的角色CSDN程序员副业图谱的核心模块技术内容创作博客/专栏写作:技术干货、实战经验、行业分析视频教程:…...
沈阳户外路灯厂家哪家好
大家好,我是你们的老朋友小李。今天咱们聊聊沈阳的户外路灯市场,尤其是哪家厂家值得信赖。在众多品牌中,中领乾路灯凭借其卓越的产品质量和贴心的服务,逐渐成为了行业的佼佼者。接下来,我会从几个方面来详细分析一下&a…...
linux个人心得24 (mysql③,AI排版尝试)
一、MySQL 数据导入(mysql 客户端)表格操作场景核心命令关键说明基本导入方式 1(重定向)mysql -u [用户名] -p[密码] [目标数据库名] < [文件名.sql]最常用,直接执行.sql 文件,目标库需预先创建基本导入…...
拓朋A50Ex自组网防爆对讲机,守护矿山救援队安全通讯
在深邃复杂的矿山巷道,安全与沟通是每位救援队员与作业人员最为关心的两大要素。在这样一片黑暗而充满挑战的天地里,拓朋A50Ex自组网防爆对讲机以其出色的性能,悄然成为了矿山救援队的隐形守护者。 无惧复杂环境,沟通无阻 矿山内部…...
Jenkins 学习总结沾
先唠两句:参数就像餐厅点单 把API想象成一家餐厅的“后厨系统”。 ? 路径参数/dishes/{dish_id} -> 好比你要点“宫保鸡丁”这道具体的菜,它是菜单(资源路径)的一部分。查询参数/dishes?spicytrue&typeSichuan -> 好比…...
Inspektor Gadget开发者指南:从零构建你的第一个eBPF监控工具
Inspektor Gadget开发者指南:从零构建你的第一个eBPF监控工具 【免费下载链接】inspektor-gadget Inspektor Gadget is a set of tools and framework for data collection and system inspection on Kubernetes clusters and Linux hosts using eBPF 项目地址: h…...
019、FreeRTOS-MPU:内存保护单元支持
019、FreeRTOS-MPU:内存保护单元支持 从一次深夜调试说起 上周三凌晨两点,产线测试板突然重启。日志显示任务A写入了任务B的数据区,导致MPU触发MemManage异常。硬件同事坚持“MPU配置没问题”,软件同事咬定“代码逻辑没问题”——这种场景太熟悉了。最终发现是任务栈溢出…...
颠覆式OpenCore自动化配置:5分钟完成黑苹果EFI构建的终极解决方案
颠覆式OpenCore自动化配置:5分钟完成黑苹果EFI构建的终极解决方案 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify OpCore-Simplify是一款专…...
观点_倒计时4年!Gartner重磅发布《2026网络安全6大趋势》,AI失控、量子威胁已逼近企业生命线
观点|倒计时4年!Gartner重磅发布《2026网络安全6大趋势》,AI失控、量子威胁已逼近企业生命线 Gartner 重磅发布 2026 年网络安全六大核心趋势,直指在 AI 技术迭代、量子计算发展与地缘政治相互交织下,网络安全已成为贯穿企业治理…...
