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.pswp.cn/news/392386.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/392386.shtml
英文地址,請注明出處:http://en.pswp.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;其中…