leetcode 239. 滑动窗口最大值(单调队列)

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

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

示例 1:

输入: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

代码

class Solution {public int[] maxSlidingWindow(int[] nums, int k) {LinkedList<Integer> stack=new LinkedList<>();ArrayList<Integer> list=new ArrayList<>();for(int i=0;i<k;i++)//初始化第一个滑动区间里的单调栈{while (!stack.isEmpty()&&nums[i]>stack.getLast())stack.removeLast();stack.addLast(nums[i]);}list.add(stack.getFirst());for(int i=k;i<nums.length;i++)//滑动窗口向右滑动的同时,维护单调栈{if(nums[i-k]==stack.getFirst()) stack.removeFirst();//判断滑出窗口的元素是否属于单调栈的一部分while (!stack.isEmpty()&&nums[i]>stack.getLast())stack.removeLast();stack.addLast(nums[i]);list.add(stack.getFirst());}int[] res=new int[list.size()];for(int i=0;i<list.size();i++)res[i]=list.get(i);return res;}
}

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

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

相关文章

scrape创建_确实在2分钟内对Scrape公司进行了评论和评分

scrape创建网页搜罗&#xff0c;数据科学 (Web Scraping, Data Science) In this tutorial, I will show you how to perform web scraping using Anaconda Jupyter notebook and the BeautifulSoup library.在本教程中&#xff0c;我将向您展示如何使用Anaconda Jupyter笔记本…

ArcGIS自定义高程

没写呢。 转载于:https://www.cnblogs.com/jiangyuanjia/p/11220183.html

Java基础——String类(一)

一、String 类代表字符串 Java 程序中的所有字符串字面值&#xff08;如 "abc" &#xff09;都作为此类的实例实现。 字符串是常量&#xff1b;它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的&#xff0c;所以可以共享。例如…

java jol原理_Java对象布局(JOL)实现过程解析

java对象布局JOL(java object layout),描述对象在堆内存的布局。如下图&#xff1a;1.markword 固定长度8byte&#xff0c;描述对象的identityhashcode&#xff0c;分代年龄&#xff0c;锁信息等(https://www.jb51.net/article/183984.htm)&#xff1b;2.klasspoint 固定长度4b…

数据库维护相关

&#xff08;1&#xff09;SQL Server 查看数据表使用空间 exec sp_spaceused 表名 &#xff08;2&#xff09;SQL Server 数据表使用空间排序 exec sp_MSForeachTable precommandN create table ##( table_name sysname, records int, save_space Nvarchar(10), use_space var…

Redux初学者指南

by Safeer Hayat通过更安全的哈亚特 Understanding Redux as a beginner can be quite confusing. Redux has an abundance of new terms and concepts which are often pretty unintuitive. This guide presents a very simplified example of a Redux implementation. I wil…

leetcode 86. 分隔链表(链表)

给你一个链表和一个特定值 x &#xff0c;请你对链表进行分隔&#xff0c;使得所有小于 x 的节点都出现在大于或等于 x 的节点之前。 你应当保留两个分区中每个节点的初始相对位置。 示例&#xff1a; 输入&#xff1a;head 1->4->3->2->5->2, x 3 输出&am…

极光推送

推送原理 IOS 通过APNs推送服务。 每个设备只要保持一个与APNs的常链接&#xff0c;服务器将要推送的消息发送给APNs&#xff0c;APNs再将消息转发到响应的手机&#xff0c;手机内置的程序再进行分发&#xff0c;到响应的APP&#xff0c;就能很好的实现推送功能 Andriod 虽然谷…

电脑通过手机上网的方法

(适用于包月CMWAP无限流量服务,只收CMWAP费用)移动手机(GPRS) CMWAP无限流量包月服务&#xff0c;可以通过手机作调制解调器&#xff0c;将手机和电脑连接用代理服务器上网. 看到了很多帖子&#xff0c;整理了一下&#xff0c;把它贴出来供大家参考。一 该方法对手机要求:1 手…

java入门学习_Java入门学习进阶知识点

Java入门学习进阶知识点入门阶段&#xff0c;主要是培养Java语言的编程思想。了解Java语言的语法&#xff0c;书写规范等&#xff0c;掌握Eclipse、MyEclipse等开发工具&#xff0c;编写Java代码的能力。学完这个阶段你应该可进行小型应用程序开发并且可以对数据库进行基本的增…

如何不认识自己

重点 (Top highlight)By Angela Xiao Wu, assistant professor at New York University纽约大学助理教授Angela Xiao Wu This blog post comes out of a paper by Angela Xiao Wu and Harsh Taneja that offers a new take on social sciences’ ongoing embrace of platform …

JDBC 数据库连接操作——实习第三天

今天开始了比较重量级的学习了&#xff0c;之前都是对于Java基础的学习和回顾。继续上篇的话题&#xff0c;《谁动了我的奶酪》&#xff0c;奉献一句我觉得比较有哲理的话&#xff1a;“学会自嘲了,而当人们学会自嘲,能够嘲笑自己的愚蠢和所做的错事时,他就在开始改变了。他甚至…

webassembly_WebAssembly的设计

webassemblyby Patrick Ferris帕特里克费里斯(Patrick Ferris) WebAssembly的设计 (The Design of WebAssembly) I love the web. It is a modern-day superpower for the dissemination of information and empowerment of the individual. Of course, it has its downsides …

leetcode 509. 斐波那契数(dfs)

斐波那契数&#xff0c;通常用 F(n) 表示&#xff0c;形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始&#xff0c;后面的每一项数字都是前面两项数字的和。也就是&#xff1a; F(0) 0&#xff0c;F(1) 1 F(n) F(n - 1) F(n - 2)&#xff0c;其中 n > 1 给你 n &a…

java基本特性_Java面试总结之Java基础

无论是工作多年的高级开发人员还是刚入职场的新人&#xff0c;在换工作面试的过程中&#xff0c;Java基础是必不可少的面试题之一。能不能顺利通过面试&#xff0c;拿到自己理想的offer&#xff0c;在准备面试的过程中&#xff0c;Java基础也是很关键的。对于工作多年的开发人员…

plotly python_使用Plotly for Python时的基本思路

plotly pythonI recently worked with Plotly for data visualization on predicted outputs coming from a Machine Learning Model.我最近与Plotly合作&#xff0c;对来自机器学习模型的预测输出进行数据可视化。 The documentation I referred to : https://plotly.com/pyt…

转发:毕业前的赠言

1、找一份真正感兴趣的工作。 “一个人如果有两个爱好&#xff0c;并且把其中一个变成自己的工作&#xff0c;那会是一件非常幸福的事情。那么另外一个爱好用来做什么&#xff1f;打发时间啦。所以&#xff0c;第二个兴趣非常重要&#xff0c;在你无聊寂寞的时候越发显得它…

Python模块之hashlib:提供hash算法

算法介绍 Python的hashlib提供了常见的摘要算法&#xff0c;如MD5&#xff0c;SHA1等等。 什么是摘要算法呢&#xff1f;摘要算法又称哈希算法、散列算法。它通过一个函数&#xff0c;把任意长度的数据转换为一个长度固定的数据串&#xff08;通常用16进制的字符串表示&#xf…

css flexbox模型_完整CSS课程-包括flexbox和CSS网格

css flexbox模型Learn CSS in this complete 83-part course for beginners. Cascading Style Sheets (CSS) tell the browser how to display the text and other content that you write in HTML.在这本由83部分组成的完整课程中&#xff0c;为初学者学习CSS。 级联样式表(CS…

leetcode 830. 较大分组的位置

在一个由小写字母构成的字符串 s 中&#xff0c;包含由一些连续的相同字符所构成的分组。 例如&#xff0c;在字符串 s “abbxxxxzyy” 中&#xff0c;就含有 “a”, “bb”, “xxxx”, “z” 和 “yy” 这样的一些分组。 分组可以用区间 [start, end] 表示&#xff0c;其中…