滑動視窗演算法 演算法 滑動視窗 二

2021-10-12 08:14:46 字數 596 閱讀 9331

演算法:

這算是滑動視窗的另外乙個典型題目,在資料量比較少的時候,可以直接採用暴力法解決;不過資料量比較大的時候,我們就需要想辦法解決視窗裡面最大值的思路,這裡我們採用雙端佇列queue來實現,借助  queue來儲存前面計算過的最大值資訊。

題目:

解法1:

暴力解法:按照 視窗大小,從頭到尾依次遍歷,將每個視窗中的最大值 儲存到輸出的結果中。

執行結果:

解法2:

利用雙端佇列來儲存計算過的最大資料,queue來儲存遍歷過的最大資料,一旦當前元素比queue中的大,就需要將比當前元素小的資料移除;並且保證queue[0]作為每個視窗計算的最大值。

執行結果:

滑動視窗演算法

我們學習過計算機網路都知道為了避免擁塞發生,在網路傳輸時有滑動視窗協議控制傳輸時流量。該協議允許傳送方在停止並等待確認前傳送多個資料分組。由於傳送方不必每發乙個分組就停下來等待確認,因此該協議可以加速資料的傳輸,提高網路吞吐量。這個跟我們今天說的滑動視窗演算法是乙個原理。該演算法的作用就是將我們多層...

滑動視窗演算法

在letecode程式設計中經常會碰到一類尋找最長序列的問題,這個時候都可以採用滑動視窗的演算法 滑動視窗就是控制乙個雙指標left,right,沒有達到極限條件的時候right指標,操作臨界條件 就讓left指標,然後更新這個最長序列。比如下面的的問題 問題一 給你兩個長度相同的字串,s 和 t。...

滑動視窗演算法

滑動視窗演算法可以用以解決陣列 字串的子元素問題,它可以將巢狀的迴圈問題,轉換為單迴圈問題,降低時間複雜度。給定乙個字串,請你找出其中不含有重複字元的最長子串的長度。輸入 s abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。通過不斷滑動視窗的大小,判斷視窗中元...