每k個數的最大最小值 (單調佇列)

2021-10-01 22:37:04 字數 489 閱讀 3576

有n個數,每次向右移動一位,每k個數輸出最大值最小值。

題目鏈結

單調佇列,求最大值的時候佇列裡儲存下降序列的下標,求最小值的時候,儲存上公升序列的下標。每次輸出隊首。如果佇列裡的數的個數多於k個,就彈出隊首。

#pragma warning(disable:4996)

#include#include#include#include#include#include#include#include#includeusing namespace std;

typedef long long ll;

int a[1000005], q[1000005];

int main()

printf("\n");

h = 0; t = 0;

for (i = 1; i <= n; i++)

printf("\n");

return 0;

}

刪去k個數字後的最小值

參考 程式設計師小灰 substring 方法返回字串的子字串。語法public string substring int beginindex 或public string substring int beginindex,int endindex 引數beginindex 起始索引 包括 索引從...

獲取刪除k個數後的最小值

思路 把原整數的所有數字從左向右比較,如果發現某一位數字大於它右邊的數字,那麼在刪除該數字後,必定回使該數字的的值降低 以遍歷數為外迴圈,以k作為內迴圈,使用棧的特性,讓所有數字乙個個入棧,當某個數字需要刪除時,讓數字出棧,最後,把棧的內容轉化為字串結果 刪除調整數的k個值後,或得刪除後的最小值 思...

單調佇列在滑動最小值方面的應用

我們來看看,這樣乙個問題,poj 2823 sliding window 給定乙個序列 a1 a2,ai,a n 讓你構造乙個陣列b,b i min 對於這個問題我們當然可以用rmq等資料結構在 o nlgn 的時間內解決,可是這個資料結構首先是太難寫了,二是複雜度還可以降低.這種佇列滿足乙個關係及...