每天一道算法題(十一)——滑動窗口最大值_困難(中等)

文章目錄

  • 1、問題
  • 2、示例
  • 3、解決方法
    • (1)方法1——雙指針
  • 總結


1、問題

給你一個整數數組 nums,有一個大小為 k 的滑動窗口從數組的最左側移動到數組的最右側。你只可以看到在滑動窗口內的 k 個數字。滑動窗口每次只向右移動一位。
返回 滑動窗口中的最大值 。

2、示例

示例 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
示例 2:
輸入:nums = [1], k = 1
輸出:[1]

3、解決方法

(1)方法1——雙指針

let nums = [1,3,-1,-3,5,3,6,7], k = 3
var maxSlidingWindow = function(nums, k) {// 1-1:定義左右指針(右指針 = 滑動窗口長度 = k的長度)let left = 0;right= k;let maxArray = []  // 1-2:定義一個接收最大值的數組let temp; // 1-3 定義一個接收左右指針切割后的數組// 2-1:遍歷判斷 右指針 小于等于  數組的長度while(right <= nums.length){// 3-1: 根據左右指針切割數組賦值給temptemp = nums.slice(left, right);// 3-2 將切割的數組獲取最大值let max = Math.max(...temp)// 3-3 將獲取的最大值插入到數組中maxArray.push(max);// 2-2 :左右指針 自增left++right++}// 4:返回最大值數組console.log('最大值的數組', maxArray);
};
maxSlidingWindow(nums, k);

總結

(1)難度: 困難(如果你了解了雙指針思路的話:中等)
(2)相同文章:
每天一道算法題(八)——找出字符串中無重復字符的最長子串
每天一道算法題(九)——尋找字符串中所有字母異位詞的子串
每天一道算法題(十)——獲取和為k的子數組
(3)其他:20分鐘不到寫出來的,感覺還可以。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/160716.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/160716.shtml
英文地址,請注明出處:http://en.pswp.cn/news/160716.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

c++ 函數的申明

1 一個cpp中 兩種情況 1.1 定義 使用 1.2 聲明 使用 定義 2 按 定義 后 直接使用的順序 不用 聲明 函數 #include <iostream> using namespace std;int max(int a, int b) {int max a>b?a:b;return max; }int main() {int a 1;int b 2;cout << max(a, b…

解決vue中引入天地圖顯示不全問題,設置setTimeout即可解決!

index.html中引入天地圖api <script type"text/javascript" src"https://api.tianditu.gov.cn/api?v4.0&tk你的key"></script>map.vue中初始化天地圖 //初始化天地圖 initTMap() {const T window.T;// 3.初始化地圖對象this.tMap new…

flink1.13.6版本的應用程序(maven版)

問題 想要一個指定flink版本的java計算任務hello world最簡工程。 解決 mvn archetype:generate \-DarchetypeGroupIdorg.apache.flink \-DarchetypeArtifactIdflink-quickstart-java \-DarchetypeVersion1.13.6這里直接使用官方mave模版工程&#xff0c;指…

系統架構設計:13 論基于構件的軟件開發

論基于構件的軟件開發 軟件系統的復雜性不斷增長、軟件人員的頻繁流動和軟件行業的激烈竟爭迫使軟件企業提高軟件質量、積累和固化知識財富,并盡可能地縮短軟件產品的開發周期。 集軟件復用、分布式對象計算、企業級應用開發等技術為一體的“基于構件的軟件開發”應運而生,…

LeetCode 2304. 網格中的最小路徑代價:DP

【LetMeFly】2304.網格中的最小路徑代價&#xff1a;DP 力扣題目鏈接&#xff1a;https://leetcode.cn/problems/minimum-path-cost-in-a-grid/ 給你一個下標從 0 開始的整數矩陣 grid &#xff0c;矩陣大小為 m x n &#xff0c;由從 0 到 m * n - 1 的不同整數組成。你可以…

【python基礎(二)】列表詳解

文章目錄 一. 訪問列表元素二. 使用列表中的各個值三. 修改、添加和刪除元素1. 修改列表元素2. 在列表中添加元素3. 從列表中刪除元素 四.組織列表1. sort()對列表永久排序2. sorted()對列表臨時排序3. 倒著打印列表4. 確定列表的長度 列表由一系列按特定順序排列的元素組成。可…

Django框架之Cookie和Session和CBV加裝飾器的三種方法

【一】Cookie與Session Cookie和Session是用來在Web應用程序中跟蹤用戶會話數據的兩種常用技術。 【1】Cookie和Session的發展史 【1】Cookie的發展史&#xff1a; 1994年&#xff0c;網景通信公司推出了第一個瀏覽器Cookie技術。Cookie是存儲在用戶計算機上的小型文本文件…

redis五種基本數據類型

redis存儲任何類型的數據都是以key-value形式保存&#xff0c;并且所有的key都是字符串&#xff0c;所以討論基礎數據結構都是基于value的數據類型 常見的5種數據類型是&#xff1a;String、List、Set、Zset、Hash 一) 字符串(String) String是redis最基本的類型&#xff0c;v…

linux日志不循環問題診斷

有一臺Linux虛擬機的messages日志文件自2023年7月下旬開始沒有按周為周期重新生成新的日志&#xff0c;一直累積在同一個messages文件中&#xff0c;如下所示&#xff1a; [root logrotate.d]# ls -l /var/log|grep me -rw-r--r-- 1 root root 107170 Nov 15 1…

地圖導航測試用例,你get了嗎?

地圖導航是我們經常使用的工具&#xff0c;能幫助我們指引前進的方向。 接下來&#xff0c;會從功能測試、UI測試、兼容測試、安全測試、網絡測試、性能測試、易用性測試、文檔和國際化語言測試8個方面來編寫地圖導航測試用例。 一 功能測試 輸入起點和終點&#xff0c;驗證…

python3.7升級為更高版本并遷移庫

創建虛擬環境 # 在進入當前的虛擬環境【py3.7的環境】使用pip導出全部包txt文件 pip freeze > all_package.txt# 創建虛擬環境 conda create -n py39 python3.9# 激活新創建的虛擬環境 conda activate py39# 用 pip 一鍵文件安裝 # pip install --help 查看-r命令的作用 # …

LeetCode48旋轉圖像

思路是沿對角線交換元素,之后沿矩陣中線交換元素 參考鏈接 &#x1f517;:【LeetCode 每日一題】48. 旋轉圖像 | 手寫圖解版思路 代碼講解-嗶哩嗶哩】 class Solution {public void rotate(int[][] matrix) {int i0,j0;if(matrixnull){return;}int n matrix.length;// int[]…

優先級隊列(priority_queue)

文章目錄 優先級隊列的定義定義&#xff1a;接口頭文件優先隊列和堆的關系使用&#xff1a;排序的規則容器 仿函數應用 隊列存指針問題&#xff1a; 優先級隊列的定義 定義&#xff1a; 黃色部分是仿函數 接口 頭文件 這里不需要包含其他的頭文件只需要使用隊列的頭文件就可以…

mysql 與 Oracle 的區別,oracle 與 mysql分頁查詢的區別

文章目錄 mysql 與 Oracle 的區別1、并發性2、一致性3、事務4、數據持久性5、提交方式6、邏輯備份7、熱備份8、sql語句的擴展和靈活性9、復制10、性能診斷11、權限與安全12、分區表和分區索引13、管理工具 oracle 與 mysql分頁查詢1.Oracle分頁查詢中提供了一個偽列&#xff1a…

LeetCode算法題解(動態規劃)|LeetCode343. 整數拆分、LeetCode96. 不同的二叉搜索樹

一、LeetCode343. 整數拆分 題目鏈接&#xff1a;343. 整數拆分 題目描述&#xff1a; 給定一個正整數 n &#xff0c;將其拆分為 k 個 正整數 的和&#xff08; k > 2 &#xff09;&#xff0c;并使這些整數的乘積最大化。 返回 你可以獲得的最大乘積 。 示例 1: 輸入…

?極氪,中國傳統汽車品牌電動化的樣板間

這篇文章早就想寫了&#xff0c;因為太忙的原因就一直跳票&#xff0c;正好最近兩件事的出現&#xff0c;又觸發了想寫這篇文章的沖動。 兩件事主要是&#xff1a; 一&#xff0c;10 月份各家陸續公布了單月銷量以及累計銷量&#xff1b; 二&#xff0c;極氪在北京正式發布了 …

LeetCode100131. Make Three Strings Equal

文章目錄 一、題目二、題解 一、題目 You are given three strings s1, s2, and s3. You have to perform the following operation on these three strings as many times as you want. In one operation you can choose one of these three strings such that its length i…

PTA 7-2 簡單計算器

7-2 簡單計算器 分數 20 全屏瀏覽題目 作者 張彤彧 單位 浙江大學 模擬簡單運算器的工作。假設計算器只能進行加減乘除運算&#xff0c;運算數和結果都是整數&#xff0c;四種運算符的優先級相同&#xff0c;按從左到右的順序計算。 輸入格式: 輸入在一行中給出一個四則運…

【GUI】-- 10 貪吃蛇小游戲之靜態面板繪制

GUI編程 04 貪吃蛇小游戲 4.1 第一步&#xff1a;先繪制一個靜態的面板 首先&#xff0c;需要新建兩個類&#xff0c;一個StartGame類作為游戲的主啟動類&#xff1b;一個GamePanel類作為游戲的面板類。此外&#xff0c;再新建一個Data類作為數據中心(存放了小蛇各部分圖像的…

微信朋友圈全新玩法,輕松互動,引爆你的社交圈

隨著社交媒體的普及&#xff0c;越來越多的人開始利用朋友圈來展示自己的生活和與朋友互動。而在這個數字時代&#xff0c;定時發圈、跟圈和朋友圈互動已經成為了一種社交習慣。本文將介紹這些功能的概念和一鍵轉發朋友圈的實現方法。 什么是定時發圈、跟圈、朋友圈互動和一鍵轉…