有一个整型数组arr 和一个 大小为w的窗口从数组的最左边滑倒最右边,窗口每次向右边滑动一个位置

如果数组长度为n, 窗口大小为w, 则一共产生 n-w+1 个窗口的最大值

请实现一个函数:

输入  整型数组 arr, 窗口大小 w

输出 一个长度为 n-w+1 的数组res  res[i] 表示每一种窗口状态下的最大值。

本题的关键在于利用双端队列来实现最大值的更新。首先生成双端队列qmax, qmax中存放数组arr的下标

看代码:

package TT;import java.util.LinkedList;public class Test125 {public int[] getMaxWindow(int[] arr, int w){if(arr==null || w <1 || arr.length <w){return null;}LinkedList<Integer> qmax = new LinkedList<Integer>();int[] res = new int[arr.length-w+1];int index=0;for(int i =0; i<arr.length; i++){while(!qmax.isEmpty() && arr[qmax.peekLast()]<=arr[i]){qmax.pollLast();}qmax.addLast(i);if(qmax.peekFirst()==i-w){qmax.pollFirst();}if(i>=w-1){res[index++]=arr[qmax.peekFirst()];}}return res;}}

  

转载于:https://www.cnblogs.com/toov5/p/7513741.html

算法总结之 生成窗口的最大值数组相关推荐

  1. 左神算法:生成窗口最大值数组(Java版)

    本题来自左神<程序员面试代码指南>"生成窗口最大值数组"题目. 题目 有一个整型数组 arr 和一个大小为 w 的窗口从数组的最左边滑到最右边,窗口每次向右边滑一个位置 ...

  2. 栈和队列之生成窗口最大值数组

    package com.chenyu.zuo.stackAndQueue;import java.util.LinkedList;/*** 题目:有一个整形数组,arr和一个大小为w的窗口从数组的最左 ...

  3. numpy随机生成01矩阵_NumPy数组基本介绍

    本文作者:孙晓玲 文字编辑:钱梦璇 技术总编:张   邯 NumPy是短语"Numerical Python"的缩写,NumPy库是一个功能强大的Python库,主要用于对多维数组 ...

  4. 数组越界怎么判断_算法连载之求解两个有序数组的中位数

    问题 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2.找出这两个有序数组的中位数.假设 nums1 和 nums2 不会同时为空. 示例 1: nums1 = [1, 3] num ...

  5. (笔试题)滑动窗口的最大值

    题目: 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值. 例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6 ...

  6. matlab中基于十字形窗口的滤波算法,#215;字形滤波窗口在Matlab自适应中值滤波算法中的应用 - 21ic中国电子网...

    由于种种原因,图像在生成.传输.变换等过程中往往会受到各种噪声的污染,从而导致图像质量退化.噪声信号的滤波是图像处理的基本任务之一,主要有线性滤波和非线性滤波两种方法.线性滤波方法一般具有低通特性,而 ...

  7. java 滑动窗口_【Java】 剑指offer(59-1) 滑动窗口的最大值

    本文参考自<剑指offer>一书,代码采用Java语言. 题目 给定一个数组和滑动窗口的大小,请找出所有滑动窗口里的最大值.例如,如果输入数组{2, 3, 4, 2, 6, 2, 5, 1 ...

  8. 使用TextRank算法为文本生成关键字和摘要

    使用TextRank算法为文本生成关键字和摘要 发表于1年前(2014-12-01 21:31)   阅读(10282) | 评论(27) 155人收藏此文章, 我要收藏 赞15 摘要 TextRan ...

  9. lintcode 滑动窗口的最大值(双端队列)

    题目链接:http://www.lintcode.com/zh-cn/problem/sliding-window-maximum/# 滑动窗口的最大值 给出一个可能包含重复的整数数组,和一个大小为  ...

最新文章

  1. 类的实例方法静态方法类方法属性方法属性
  2. 大学计算机二级培训蹭课,本人在复旦大学蹭课总结的一点小小的经验
  3. 软件设计师-不确定有限自动机到确定有限自动机转换的例子
  4. OpenCv之图像形态学(笔记08)
  5. springboot入门书籍推荐,“最粉嫩
  6. ExtJS4.2学习(11)——高级组件之Grid
  7. FriendlyUrls——在ASP.NET Web表单中使用更友好的URL
  8. mkfs 格式化分区并创建文件系统
  9. 李炎恢PHP高端培训视频教程
  10. 工业相机基本参数以及选型参考
  11. JavaCV本地视频流通过帧图片添加文本进行字幕合成
  12. vue项目访问路径添加项目名称
  13. Linux 容器化技术详解(虚拟化、容器化、Docker)
  14. 软件测试真假童子,19岁年薪千万,他打王者荣耀打成了“游戏圈的TFBOYS”
  15. 基于Spring boot的教学论坛系统的分页功能的实现,完善导航栏,搜索功能的实现,评论有关功能
  16. LOB大字段空间整理
  17. 微信拍一拍怎么设置文字?微信拍一拍加后缀仅需要这样…
  18. 《个体软件过程》—第8章8.2节认真制订承诺
  19. 在 macOS 中使用密码保护压缩(zip)文件
  20. 盘点软件测试必备软件

热门文章

  1. termux添加php镜像,termux | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror...
  2. 学校机房为什么要穿鞋套?
  3. 零基础开始学前端有什么建议?
  4. java 全局返回码设计_服务返回码的设计
  5. python创建实例属性_Python学习笔记__6.5章 实例属性和类属性
  6. 图片 富文本 粘贴_用C++实现富文本控件(中): 撤销
  7. 已知若干点求圆心_【求精干货】高中数学知识点总结归纳高一学生必须掌握
  8. mongodb连接池 php,node.js,mongodb_nodejs使用mongodb连接池,node.js,mongodb - phpStudy
  9. 计算机系统结构课程所设计总结,高级计算机系统结构-课程总结(13页)-原创力文档...
  10. pythoninformation leakage_GitHub - MrFk/GSIL: Github Sensitive Information Leakage(Github敏感信息泄露)...