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

力扣239.滑动窗口最大值 | 双端队列

分析

1.队列存数组的下标优势:既能通过索引获得值,又能得知索引以判断边界条件。
2.循环遍历数组n个。遍历的当前数cur与当前队列中的最后一个数比较 直到该队列为空 或 队列尾部的数大于cur,就把队尾的数 pollLast清出队列。然后把cur放进队列。
3.结尾判断一下是否已经走出k步(i >= k-1 只要超过k-1则意味着到达每个队列的队尾,此时队列首部的值就是该区间最大值(os:因为在上一步不断更新队列值的时候已经更新过队列)),就把加入res[i - k + 1] 共n-k+1个。
4.最后在迭代内部需要判断双端队列队首所存储的索引代表的最大值是否已经“滑出”当前窗口的范围​,也就是deque.peekFirst() < i - k + 1,索引是否已经超出当前边界(当前左边界i - k + 1),首尾呼应。

代码

点击查看代码
class Solution {public int[] maxSlidingWindow(int[] nums, int k) {Deque<Integer> deque  = new LinkedList<>();int n = nums.length;int[] res = new int[n-k+1];for(int i = 0; i < n;i++){if(!deque.isEmpty() && deque.peekFirst() < i-k+1 ){deque.pollFirst();}while(!deque.isEmpty() && nums[deque.peekLast()] < nums[i]){deque.pollLast();}deque.offerLast(i);if(i >= (k-1)){res[i-k+1] = nums[deque.peekFirst()];}}return res;}
}
http://www.sczhlp.com/news/69529/

相关文章:

  • 网站前端设计是什么经常做ppt的网站
  • 朗格手表网站影视公司招聘
  • 网站屏蔽搜索引擎怎么进入外网
  • 网站开发外包方案互联网技术应用
  • 关于推进网站集约化建设的讲话此网站正在建设中
  • 网站推广业务网站建设项目培训
  • 网站开发常用语言总结ios软件开发需要学什么
  • 做微信的网站叫什么聊城做手机网站建设
  • 做网站新闻wordpress 删除评论框
  • Lumion超详细下载安装激活教程(附安装包)Lumion Pro 12.0下载安装激活全流程解析
  • 嘉兴做网站建设二级域名解析网
  • 长沙企业建站按效果付费网页设计与制作课程思政目标
  • 陕西汉中网站建设如何修改公司网站
  • 贵阳网站建设王道下拉惠中国做室内设计的网站
  • 公司网站开发费用济南兴田德润o简介图片网站制作包括哪些
  • 软件工程第一次作业
  • 简单网站制作成品杭州seo的优化
  • 手机创建网站免费wordpress如何生成app
  • 怎么做口子推广网站宝山网站建设
  • 如何知道网站的字体做净化行业需要知道的网站
  • seo网站关键词排名优化公司app外包网站
  • 招远 两学一做 网站企业网络营销策划书
  • 什么叫网站地图做暖暖XO网站
  • 网站建设与制作模板24免费妇科在线咨询
  • 四川公司网站建设招标如东城乡建设局网站
  • 常见网站性能优化手段周易八字排盘系统网站建设
  • 网站怎么创建内容设备高端网站建设
  • 2025暑假集训总结wwl
  • 法三、根据20250901 - 1-单版本(删解析和答案).py里的代码优化。
  • 做特效很牛的一个外国网站公司网站如何建设教学视频