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

【字串】【困难】滑动窗口最大值

题目

给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。

返回 滑动窗口中的最大值 。

示例 1:
输入:nums = [1,3,-1,-3,5,3,6,7], k = 3
输出:[3,3,5,5,6,7]
解释:

滑动窗口的位置最大值
[1 3 -1] -3 5 3 6 73
1 [3 -1 -3] 5 3 6 73
1 3 [-1 -3 5] 3 6 75
1 3 -1 [-3 5 3] 6 75
1 3 -1 -3 [5 3 6] 76
1 3 -1 -3 5 [3 6 7]7

示例 2:
输入:nums = [1], k = 1
输出:[1]

提示:
1 <= nums.length <= 10^5
-10^4 <= nums[i] <= 10^4
1 <= k <= nums.length

方法一:暴力求解

每次比较k个元素的最大值

  • timeout
publicstaticint[]maxSlidingWindow(int[]nums,intk){int[]ans=newint[nums.length-k+1];intmax=nums[0];for(inti=0;i<ans.length;i++){//k个元素的最大值max=nums[i];for(intj=i+1;j<i+k;j++){max=Math.max(max,nums[j]);}ans[i]=max;}returnans;}

方法二:单调队列

维护一个从大到小排列的队列,队头永远最大。每当新来的数字时,会把前面比它小的数字全部淘汰。

publicstaticint[]maxSlidingWindow(int[]nums,intk){Deque<Integer>deque=newArrayDeque<>();int[]ans=newint[nums.length-k+1];for(inti=0;i<nums.length;i++){//超过窗口,删除元素if(!deque.isEmpty()&&deque.peekFirst()==i-k){//删除头元素deque.pollFirst();}//从后到前依次比较,删除比当前值小的元素while(!deque.isEmpty()&&nums[i]>=nums[deque.peekLast()]){deque.pollLast();}deque.addLast(i);//进入数组if(i>=k-1){ans[i-k+1]=nums[deque.peekFirst()];}}returnans;}
http://www.cnnetsun.cn/news/3999786.html

相关文章:

  • 【收藏必看2026版】普通人零门槛入局AI!大模型成程序员高薪最优解
  • Python环境搭建与核心语法实战:从入门到工程化的十年经验总结
  • 打造真正有利于优化的网站建设方案,从底层逻辑重构你的网站流量
  • Perplexity Agent API与Kimi K3实战:构建自主任务执行AI智能体
  • AI编程助手生态之争:Codex与Claude Code的部署自由与配置实战
  • 大气层系统Atmosphere:Nintendo Switch破解终极完整指南
  • GitHub 下载慢怎么办?免费开源插件 Fast-GitHub 加速指南
  • PvZWidescreen 宽屏补丁完整指南:把《植物大战僵尸》的黑边变成你的新战场
  • 网站建设基本流程规范:揭秘从0到1打造高转化官网的硬核指南
  • Google Gemma 4全栈开源模型:从云端到移动端的部署与优化实战
  • T检验、卡方检验与方差分析:数据分析三大核心统计检验原理与应用指南
  • 思源宋体CN实战指南:从零开始掌握专业级中文排版
  • Simulink S函数从入门到精通:自定义模块开发与C MEX实战
  • SPT-AKI存档编辑器:免费离线版修改工具的完整上手指南
  • 第24章 质量评估指标
  • AI漫剧怎么制作?如何用IP-Adapter和LoRA解决角色一致性难题
  • 2026年潍坊做智慧燃气安全监管平台的公司有哪些?
  • [硬件笔记] 保险丝选型
  • 北方高寒地区专网无线电对讲机通信工程标准化施工与落地工艺:防寒、防凝露、防雷、防水、供电、勘测全规范摘要
  • 个体工商户如何通过低成本网站建设实现品牌升级与业务增长的全攻略
  • 华为OD机试备考指南:高频算法与工程实践解析
  • Oracle Apex与主流IM平台深度集成:架构设计与工程实践
  • 片上MBQC技术:硅光芯片如何为百万比特光量子计算开辟新路径
  • AnyLabeling实战:基于SAM与YOLO-World的本地自动标注环境搭建与避坑指南
  • 网站建设素材网:设计师与开发者的宝藏库与避坑指南
  • 如何在5分钟内为MusicBee安装终极网易云歌词插件
  • 深入解析Claude Code记忆系统:令牌、上下文窗口与注意力机制
  • 【关个机机Max】震撼发布!全新UI!更多功能与优化
  • PTA基础编程题目集 7-34通讯录的录入与显示(C++语言实现)
  • 提供网站建设费用:揭秘行业底价与隐形消费陷阱的全攻略