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

做旅游网站设计的感想qq群推广平台

做旅游网站设计的感想,qq群推广平台,上海搭建商,在线制作图片及图片处理工具场景 在处理一些需要维护固定窗口大小的问题时,deque可以方便的实现窗口的滑动。尤其在处理滑动窗口内最大值最小值问题的时候,时间复杂度以及空间复杂度可以到O(n) 问题描述 给定一个数组 nums 和一个滑动窗口的大小 k,滑动窗口从数组的最…

场景

在处理一些需要维护固定窗口大小的问题时,deque可以方便的实现窗口的滑动。尤其在处理滑动窗口内最大值最小值问题的时候,时间复杂度以及空间复杂度可以到O(n)

问题描述

给定一个数组 nums 和一个滑动窗口的大小 k,滑动窗口从数组的最左侧移动到最右侧,每次移动一个位置。要求找出每个滑动窗口内的最大值。

实现思路

使用双端队列维护一个单调递减的队列,队列中存储的是数组元素的索引,而不是具体的值,步骤如下:
1、初始化双端队列:创建一个空的双端队列deque用于存储索引
2、遍历数组:
1)当队列不为空且当前元素大于等于队列尾部元素对应的数组值时,不断从队尾移除元素,保证队列的单调性
2)将当前元素的索引添加到队尾
3)如果队列头部元素的索引超出了滑动窗口的范围,将其从队列头部移除
4)当遍历到k-1个元素之后,开始记录每个滑动窗口的最大值,即队列头部元素

代码

from collections import dequedef maxSlidingWindow(nums, k):result = []window = deque()n = len(nums)for i in range(n):# 当队列不为空,且当前元素的值大于队尾元素对应的数组值时,将队尾元素删除,保证队列的单调性while window and nums[i] >= nums[window[-1]]:window.pop()# 将当前元素的索引加入队尾window.append(i)# 如果队列头部元素的索引超出滑动窗口的范围,从队列中移除头部元素if window[0] <= i-k:window.popleft()# 遍历到k-1个元素之后,开始记录最大值if i >= k-1:result.append(nums[window[0]])return result
http://www.dtcms.com/wzjs/190656.html

相关文章:

  • 公司网站怎么免费建腾讯3大外包公司
  • 做网站需要审核资质吗郑州seo使用教程
  • 深圳个性化网站建设公司电话个人网站免费制作平台
  • 宿州网站开发竞价托管外包哪家好
  • 宁波网站推广规划域名服务器查询
  • 网站推广行业赚钱吗百度邮箱登录入口
  • 如何代做网站seo基础入门教程
  • 学做ppt的网站 免费建个人网站的详细步骤
  • 品牌网站建设解决方案西安网络优化哪家好
  • 唐山诚达建设集团网站无锡网络优化推广公司
  • 长春制作公司网站企业网站模板设计
  • 提供手机网站制作公司网站源码
  • 哪个公司做网站建设好关键词汇总
  • 网站建设与管理基础及实训(php版)怎么去优化关键词
  • 海口建站模板厂家搜索引擎提交入口大全
  • 天津定制网站建设商店设计网络宣传的好处
  • 语言做网站自己怎么做网站推广
  • c2c的代表性电商平台四川seo推广方案
  • 做网站推广要会什么web网页制作成品
  • 四川建设网是什么单位厦门seo外包服务
  • web2.0网站开发a内容免费快速网站
  • 网站建设维护实训总结搜索引擎seo如何优化
  • 从零开始做网站seo黄石seo诊断
  • 一个专做特卖的网站外链工具xg下载
  • 深圳专业做网站开发费用cps推广
  • 做培训体系的网站广州各区进一步强化
  • 网站建设的总结与评价爱网站关键词查询工具
  • 用照片做模板下载网站广州百度seo公司
  • 重庆网站建设推荐南宁今日头条最新消息
  • 家具行业网站整站模板网站推广的方式有哪些?