當前位置:
首頁 >
P1886 滑动窗口(求连续区间最值的O(N)解法,单调队列)
發布時間:2024/9/3
38
豆豆
生活随笔
收集整理的這篇文章主要介紹了
P1886 滑动窗口(求连续区间最值的O(N)解法,单调队列)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述
現在有一堆數字共N個數字(N<=10^6),以及一個大小為k的窗口。現在這個從左邊開始向右滑動,每次滑動一個單位,求出每次滑動后窗口中的最大值和最小值。
例如:
The array is [1 3 -1 -3 5 3 6 7], and k = 3.
輸入輸出格式
輸入格式:
輸入一共有兩行,第一行為n,k。
第二行為n個數(<INT_MAX).
輸出格式:
輸出共兩行,第一行為每次窗口滑動的最小值
第二行為每次窗口滑動的最大值
輸入輸出樣例
輸入樣例#1:
輸出樣例#1:
-1 -3 -3 -3 3 3 3 3 5 5 6 7說明
50%的數據,n<=10^5
100%的數據,n<=10^6
Ac_code:
//關鍵:維護一個單調隊列
way1:用stl里的deque(效率比較低,不建議,但是這是我第一次用deque,熟悉一下~):
way2:
用數組模擬雙端隊列(強烈建議!效率比較高~,比上面用stl的deque快了將近兩倍)
總結
以上是生活随笔為你收集整理的P1886 滑动窗口(求连续区间最值的O(N)解法,单调队列)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LIS(基于贪心的O(NlogN)解法)
- 下一篇: P1216 [IOI1994][USAC