LeetCode—239. 滑动窗口最大值(困难)

239. 滑动窗口最大值(困难)

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

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

考察重点:维护一个队列,队列元素由大到小排列,队头为窗口最大元素

/**golang中自带的list数据结构l := list.New()//取头部和尾部l.Front()l.Back()// 尾部添加l.PushBack("canon")// 头部添加l.PushFront(67)// 尾部添加后保存元素句柄element := l.PushBack("fist")// 在fist之后添加highl.InsertAfter("high", element)// 在fist之前添加noonl.InsertBefore("noon", element)// 使用l.Remove(element)
*/
func maxSlidingWindow(nums []int, k int) []int {que := list.New()lennum := len(nums) - k + 1res := make([]int, lennum)for i, p := 0, 0; i < len(nums); i++ {for que.Len() != 0 && nums[que.Back().Value.(int)] < nums[i] {que.Remove(que.Back())		//小于 nums[i]的全部出队}que.PushBack(i)		// 目前索引加入队列if i - que.Front().Value.(int) + 1 > k {		// 当目前索引与队首元素相距大于k,说明已经不在一个滑动窗口中,则移除队首元素(每次只向后1位,所以只需判断和队首元素的差距)que.Remove(que.Front())}if i >= k-1 {		// 当 目前索引 达到了滑动窗口大小时,就可以开始记录每次的最大值了res[p] = nums[que.Front().Value.(int)]p ++}}return res
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/263467.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

intellij idea搭建springboot

intellij idea2018.3创建springboot项目1.new > spring initilizer > web > spring web initializer运行项目方法一&#xff1a;导航板上的命令台图标&#xff0c;输入命令&#xff1a;mvn springboot:run,即可看到running,浏览器测试控制器方法&#xff0c;这种方法暂…

logstash

http://www.cnblogs.com/fangjian0423/p/logstash-elasticsearch-build.html http://chenlinux.com/2013/07/11/howto-filter-count-in-logstash/

连连看路径求解的算法

这是路径求解的算法做一个简单的介绍,适合入门者;首先是 x to x ,这个是横向比较直连然后是 y to y ,这个是竖向比较直连然后是 1个折点算法很简单;比如7x3的000100000000000000001p1 是 3,0p2 是 6,2那么折点是000100x0000000000x001折点1是 6,0 ,折点2是 3,2注意这个值和p1,p…

LeetCode—240. 搜索二维矩阵 II

240. 搜索二维矩阵 II 题目描述&#xff1a; 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性&#xff1a; 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 考察重点&#xff1a;简单的二维矩阵搜索 func SearchMatr…

Android开发:什么是IBinder

上回书简单描述了进程间传递类对象的原理&#xff0c;这回在讲Parcel之前&#xff0c;先要讲一个东西&#xff1a;IBinder。IBinder是什么呢&#xff1f;首先要明白&#xff0c;Android的远程调用&#xff08;就是跨进程调用&#xff09;就是通过IBinder实现的&#xff0c;下面…

Debug调试

先设置断点&#xff0c;然后Debug调试 step into&#xff1a;进入子函数step over&#xff1a;越过子函数&#xff0c;但子函数会执行step return&#xff1a;跳出子函数转载于:https://www.cnblogs.com/android-for-dh/p/4482519.html

python matplotlib绘图大全(散点图、柱状图、饼图、极坐标图、热量图、三维图以及热图)...

//2019.7.14晚matplotlib七种常见图像输出编程大全 七种图形汇总输出如下&#xff1a; import numpy as np #导入数据结构nmupy模块import matplotlib.pyplot as plt #导入matplotlib图像输出模块plt.rcParams["font.sans-serif"]["SimHei"] #输出图像的标…

Java入门需掌握的30个基本概念[转]

Java的白皮书为我们提出了Java语言的11个关键特性(1)Easy:Java的语法比C的相对简单&#xff0c;另一个方面就是Java能使软件在很小的机器上运行&#xff0c;基础解释其和类库的支持的大小约为40kb&#xff0c;增加基本的标准库和线程支持的内存需要增加125kb。(2)分布式:Java带…

LeetCode—241. 为运算表达式设计优先级

241. 为运算表达式设计优先级 题目描述&#xff1a; 给你一个由数字和运算符组成的字符串 expression &#xff0c;按不同优先级组合数字和运算符&#xff0c;计算并返回所有可能组合的结果。你可以按任意顺序 返回答案。 考察重点&#xff1a;(递归分治) 以符号位分割为左右…

报错:不是可以识别的内置函数名称

!!创建函数的时候不需要加dbo.&#xff0c;但在访问的时候&#xff0c;标量函数要加.dbo的 自己写完的函数&#xff0c;调用后报错提示&#xff1a;不是可以识别的内置函数名称 例&#xff1a;SELECT JS_ID A.ID, JSHM A.JSHM, JS_MC A.JS_MC, XY_DM …

C++右值引用与转移语义

std::forwad? C11 中定义的 T&& 的推导规则为&#xff1a; 右值实参为右值引用&#xff0c;左值实参仍然为左值引用。 参考&#xff1a; 右值引用与转移语义转载于:https://www.cnblogs.com/glensblog/p/11098359.html

gltail安装

是基于Ruby,所以服务器需要安装有ruby,国内需要把ruby的源改为淘宝的 Centos上 yum groupinstall "Development Tools" yum -y install freeglut libX11-devel mesa-libGL-devel perl-Time-HiRes freeglut-devel readline-devel libffi-devel libtool bison libxml…

微软获得O/R映射技术专利 业界担忧阻碍技术进展

一组微软员工申报了O/R映射技术的专利。 该专利将对业界现有的O/R映射产品造成怎样的影响目前尚不清楚&#xff0c;但有业界专家担忧微软将借此专利打压竞争对手。 这份专利档案是被网友无意间在专利信息查询网站FreshPatents.com上找到的&#xff0c;点此可以浏览原文。该专利…

Linux下安装Perl模块

# perl -MCPAN -e install Time::HiRes# perl -MCPAN -e install File::Tail# perl -MCPAN -e install Date::Parse# perl -MCPAN -e install Net::Netmask转载于:https://www.cnblogs.com/nwf5d/archive/2011/06/07/2074259.html

LeetCode—260. 只出现一次的数字 III

260. 只出现一次的数字 III 题目描述&#xff1a; 给定一个整数数组 nums&#xff0c;其中恰好有两个元素只出现一次&#xff0c;其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。 进阶&#xff1a;你的算法应该具有线性时间复杂度。你能否…

keras中接口

接口文档 https://keras-cn.readthedocs.io/en/latest/layers/merge/转载于:https://www.cnblogs.com/charlie7/p/11190102.html

【活动】畅想云端加油站,赢iPad

2019独角兽企业重金招聘Python工程师标准>>> 中石化联手阿里云升级石油化工业务&#xff0c;已运行2月 中石化的“互联网”战略正在不断深化。4月20日消息&#xff0c;中石化与阿里云共同宣布&#xff0c;双方将展开技术合作&#xff0c;借助阿里巴巴在云计算、大数…

编写 Servlet 2.3 Filter

Servlets Filter 是Servlet 2.3 规范中新增加的&#xff0c;它是截取用户从客户端提交的请求&#xff0c;在还没有到达需要访问的资源时运行的一个类。它操纵来自客户端的请求&#xff0c;在资源还没有初发送到客户端前截取响应&#xff0c;并处理这些还没有发送到客户端的响应…

我记录网站综合系统 -- 技术原理解析[0:简介(代序) 1.7Beta源代码下载开始]...

看到了路过秋天的博客系统受到了大家的好评&#xff0c;我也来介绍一个好的开源的CMS系统。我记录网站综合系统 是 掷鸡蛋者 的作品&#xff0c;这个家伙将大量的时间和精力放在这个项目上了&#xff0c;可以算一个创业项目。对于这样的同志&#xff0c;我只有敬佩他和全力支持…

c++—简单的密码本实现

主要实现功能有增删改查数据&#xff0c;本地读取保存。 数据存储设计 data.h data.cpp #pragma once #define 添加账户 1 #define 删除账户 2 #define 修改账户 3 #define 查询账户 4 #define 查询所有 5 #define 保存本地 6 #define 退出 …