D 滑動視窗

2021-10-04 07:50:30 字數 546 閱讀 5609

有乙個長度為 n 的數列和乙個大小為 k 的視窗, 視窗可以在數列上來回移動. 求每次視窗內數的最大值和最小值分別是多少.

考察單調佇列。遍歷陣列內元素將其加入佇列,需要注意兩點,一是將要加入佇列的元素的索引不能比佇列頭元素大k,

如果不符合條件就要將頭移除佇列,二是判斷將加入元素和佇列尾元素的大小關係,如果不符合條件就要彈出佇列。然後再將元素加入佇列。

#include

#include

using

namespace std;

long

long n, k;

long

long arr[

1000000];

intmain()

cout << endl;

while

(!q.

empty()

) q.

pop_back()

;for

(long

long i =

0; i < n; i++

)}

Week5 D 滑動視窗滑動視窗

week5 d 滑動視窗滑動視窗 zjm 有乙個長度為 n 的數列和乙個大小為 k 的視窗,視窗可以在數列上來回移動.現在 zjm 想知道在視窗從左往右滑的時候,每次視窗內數的最大值和最小值分別是多少.例如 數列是 1 3 1 3 5 3 6 7 其中 k 等於 3.window position ...

week5 D 滑動視窗滑動視窗

zjm 有乙個長度為 n 的數列和乙個大小為 k 的視窗,視窗可以在數列上來回移動.現在 zjm 想知道在視窗從左往右滑的時候,每次視窗內數的最大值和最小值分別是多少.例如 數列是 1 3 1 3 5 3 6 7 其中 k 等於 3.window position minimum value max...

D 滑動視窗 (單調佇列)

zjm 有乙個長度為 n 的數列和乙個大小為 k 的視窗,視窗可以在數列上來回移動.現在 zjm 想知道在視窗從左往右滑的時候,每次視窗內數的最大值和最小值分別是多少.例如 數列是 1 3 1 3 5 3 6 7 其中 k 等於 3.window position minimum value max...