有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 的時間內解決,可是這個資料結構首先是太難寫了,二是複雜度還可以降低.這種佇列滿足乙個關係及...