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

做网站数据库怎么建济南网站建设开发公司哪家好

做网站数据库怎么建,济南网站建设开发公司哪家好,自建本地网站服务器wordpress,网站运营配置场景 在处理一些需要维护固定窗口大小的问题时,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/804846.html

相关文章:

  • 打开英文网站字体不对推广平台使用
  • 微信网站改版价格微信淘宝购物券网站是怎么做的
  • 厦门网站建设培训赣州网络公司电话
  • 江苏网站建设 seo的物app
  • 线上销售水果营销方案优化seo培训班
  • 我想做一个网站怎么办快速搭建网站2020
  • 开发网站的空间分录商业空间设计说明范文
  • 快递网站模板服装市场调网站建设的目的
  • 下载jsp网站开发用啥工具经典广告语
  • 专业做招聘的网站怎样做艾条艾柱网站
  • 学会计算机编程可以做网站吗打造一个网站需要多少钱
  • 易展 网站建设网络规划设计师证书图片
  • 网站音频播放器代码房屋装修app
  • 重庆市工程建设标准化网站揭阳门户网站开发
  • 公众号授权网站外包和劳务派遣哪个更好
  • 织梦网站导航固定做网站赚钱缴税吗
  • 广东湛江怎么做网站教程邢台168交友最新信息
  • 门户网站建设工作总结大连响应式网站建设
  • 哈尔滨大型网站开发seo网站描述之间用什么标点符号
  • 青岛网站设计模板Wordpress需要费用吗
  • 做网站还要写文章吗合肥响应式网站建设方案
  • 网站界面怎么做手机网站开发位置定位
  • 站长之家是干嘛的用微魔方做的网站一定要加
  • 怎么进行网站维护昆山网站建设工作室
  • 重庆自助建网站企企业天骏手表网站
  • 自己做网站 服务器东莞网站设计智能 乐云践新
  • 做网站投诉要钱吗关注清远发布
  • 东莞网站建设方案沈阳网站推广
  • 手机网站底部悬浮菜单wordpress获取专题名
  • 四平网站建设营销成都网站建设推广详情