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

做旅游攻略的网站洛阳网站建设优化

做旅游攻略的网站,洛阳网站建设优化,合肥 网站建设,深圳市龙岗区平湖疫情最新消息文章目录 题目描述思路什么时候弹出元素什么时候加入元素 代码示例和解释 题目描述 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 举例: 输…

文章目录

      • 题目描述
      • 思路
        • 什么时候弹出元素
        • 什么时候加入元素
      • 代码示例和解释

题目描述

给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。
举例:
输入:nums = [1,3,-1,-3,5,3,6,7], k = 3
输出:[3,3,5,5,6,7]
解释:
滑动窗口的位置 最大值


[1 3 -1] -3 5 3 6 7 3
1 [3 -1 -3] 5 3 6 7 3
1 3 [-1 -3 5] 3 6 7 5
1 3 -1 [-3 5 3] 6 7 5
1 3 -1 -3 [5 3 6] 7 6
1 3 -1 -3 5 [3 6 7] 7

思路

很容易想到暴力求解,遍历数据[i:i+k]取出max最大值即可,但是这种做法容易暴力超时,因此引出了自DIY的队列,主要关注的是什么时候弹出,什么时候加入队列

什么时候弹出元素

1.当遍历个数大于k的时候,弹出queue左侧==nums[i-k]
2.当队列最右侧元素小于nums[i],弹出右侧元素,因为他不可能是最大值了,队列内最多只有k个值,所以遍历到的这个元素才能成为最大值

什么时候加入元素

没遍历一次长度大于k的时候就加元素

代码示例和解释

from collections import deque
def max SlidingWindow(nums, k):queue = deque() # 双端都能插入删除的队列res = [] # 存放最后的结果# 把前面三个元素按需求加入到dequefor i in range(k):while queue and nums[i] > queue[-1]:queue.pop() # 弹出右边的元素,不可能成为最大值deque.append(nums[i])# 从k开始遍历后面的每个元素for i in range(k, len(nums)):# 只有遍历到的元素queue[0]等于nums[i-k]才需要弹出元素if queue and queue[0] == nums[i-k]:queue.popleft()while queue and queue[-1] < nums[i]:queue.pop()queue.append(nums[i])res.append(queue[0]) # 加入最大值return res

*[注意点]:queue内部的元素个数一定是小于等于k的,比如k = 3的时候,因为遍历到长度第4个元素,如果queue首元素和nums[i-k]元素相等就会有pop操作,即使不相等,其他需要pop()的元素也会被push的过程弹出,所以queue的长度始终不可能大于k

http://www.dt0577.cn/news/27087.html

相关文章:

  • 在对方网站做友情链接曹操seo博客
  • 找哪个公司做网站推广最好比较好的软文发布平台
  • 河北工程大学事件重庆百度快照优化
  • 网站 二级域名网络营销师证
  • 北京网站排名优化国内设计公司前十名
  • 网站开发电脑内存要多少营销型网站建设哪家好
  • 农产品网站建设投标书专业软文
  • 做网站用什么语言开发营销渠道有哪些
  • 做网站的电脑自带软件是什么武汉seo网站优化
  • 汕头网站搜索优化个人推广平台
  • 手机端的网站首页该怎么做安卓手机优化神器
  • 强化政府网站建设管理seo服务运用什么技术
  • 仓储网站建设平谷头条新闻
  • 网站首页制作方案网站seo文章
  • wordpress 查询当月seo的主要分析工具
  • 什么网站做批发零食的很多百度站长平台app
  • 网站色调代号制作网站的软件叫什么
  • 惠州制作网站软件手机优化大师官网
  • 教做粘土的网站360优化大师旧版本
  • 科技术语有哪些成都seo服务
  • 企业大学网站建设计划百度网站优化排名
  • 手机信息分类网站制作上海外贸seo公司
  • logo设计网站免费无水印设计网站排行
  • 要怎么判断网站是什么cms做的营销案例
  • 免费建站软件有哪些广州百度seo排名优化
  • 详述网站建设的过程简答题个人怎么做推广
  • wordpress 重复插件seo网络推广排名
  • 网站建设联杭州做百度推广的公司
  • mac做网站软件经典软文案例或软文案例
  • 舟山做网站怎样建网站