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

上海网站seo招聘天津seo推广优化

上海网站seo招聘,天津seo推广优化,c语言做的网站,网站建设推广专家题目 给你一个整数数组 nums&#xff0c;有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 提示&#xff1a; 1 < nums.length < 10^5 -10^4 < nums[i…

题目

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

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

在这里插入图片描述

提示:

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

思路

如果暴力做法,就是维护一个长度为k的数组,没移动时先遍历该数组,把最大值找出来。然后每移动一次,如果右边新加入的数>原最大值,则更新最大值。如果左边移走的数就是最大值,那么需要遍历此时移动后的数组,找出最大值。这个找出最大值的过程为O(k)。移动整体窗口的过程是O(n),合起来就是O(nk),会超出时间限制。因为移动整体窗口的过程是省略不了的,我们只能考虑如何将找出最大值的O(k)降为O(1)。

我们观察滑动窗口,如果此时滑动窗口中只有两个下标i和j,且i<j,nums[i]>=nums[j],那么只要i还在窗口内,那么j也一定还在窗口内。且nums[i]一定是窗口中的最大值,我们便不用再去遍历整个窗口了。如果我们以这个性质为出发点,维护一个严格单调递减的,下标从小到大的队列。即队列里存储的是下标,但是值是严格单调递减的。那么就相当于队列里存储的是原数组第一大元素的下标,原数组第二大元素的下标,原数组第三大元素的下标……。

当向右滑动,遍历到一个新元素now时,我们

  1. 首先需要判断now是否大于队列末尾的第k大元素klast。
    • 如果now>klast,那么意味着队列的元素,谁是第几大需要重新定义,于是只要队列不为空,我们便将now与队列末尾的元素last一个个比较,如果now大于last,就将last踢出队列,直到遇到一个比now大的元素,再将now插入到队列末尾(因为那些被踢掉的last永远不可能是答案,队列没有维护它们的必要)。
    • 如果now<klast,那么直接将now插入到队列末尾即可。
  2. 其次,我们再判断向右滑动时是否会导致队首,即原数组第一大元素滑出队列,因为队列中存储的是在原数组的下标,那么我们只需要判断这个队首元素是否>i-k即可。

java代码

class Solution {public int[] maxSlidingWindow(int[] nums, int k) {int len = nums.length;Deque<Integer> deque = new LinkedList<>();int[] ans = new int[len-k+1];for(int i=0;i<k;i++){while(!deque.isEmpty()&&nums[i]>=nums[deque.peekLast()]){deque.pollLast();}deque.offerLast(i);}ans[0]=nums[deque.peekFirst()];for(int i=k;i<len;i++){while(!deque.isEmpty()&&nums[i]>=nums[deque.peekLast()]){deque.pollLast();}deque.offerLast(i);if(deque.peekFirst()<=i-k){deque.pollFirst();}ans[i-k+1]=nums[deque.peekFirst()];}return ans;
}
}

效率分析

28ms,击败80.23%使用 Java 的用户。没必要再优化了。

http://www.dinnco.com/news/51064.html

相关文章:

  • 深圳网站建设忧化女教师遭网课入侵直播录屏曝
  • 事业单位门户网站建设包含内容小说排行榜百度搜索风云榜
  • 阿里云ecs 做网站济南优化网络营销
  • 电商型网站设计企业seo优化效果怎么样
  • 芜湖做网站百度手机点击排名工具
  • 网站制作要花多少钱产品营销网站建设
  • 在哪找做网站的优化seo报价
  • 婚庆公司网站设计关联词有哪些五年级
  • ppt做视频模板下载网站电商平台推广费用大概要多少
  • 企业门户平台设计方案苏州首页排名关键词优化
  • 做京东网站的摘要成都网络推广中联无限
  • 佛山网站制作哪家好成功的软文营销案例
  • 哪里做百度网站石家庄百度搜索优化
  • 这个百度的网站怎么做的seo建站优化
  • wordpress 图片缩略图南京seo外包
  • 建设部网站投诉核查搜索引擎竞价推广的优势
  • 用香港服务器做网站什么是口碑营销
  • 重庆免费微网站建设百度信息流怎么收费
  • 动态网站建设实践教程百度网址名称是什么
  • 大型网上购物商城seo学徒
  • 做婚纱网站的图片素材免费外链网站
  • 去网站做dnf代练要押金吗网络搭建教程
  • 儿童网站源码国家优化防控措施
  • iss怎么做网站seo关键词如何设置
  • 属于b2b电子商务网站的是长沙seo网站优化
  • 免费下wordpressseo网络培训学校
  • 做淘宝客网站要申请什么北京百度推广代理公司
  • 厦门推广公司安新seo优化排名网站
  • 上海加盟网网站建设电脑优化软件
  • 网站建设的规划软文代写平台