AcWing 154. 滑动窗口
原题链接
简单
作者:
皓首不倦
,
2020-08-07 22:30:31
,
所有人可见
,
阅读 417
from collections import deque
n, w = map(int, input().split())
arr = list(map(int, input().split()))
ans1 = []
que = deque()
for i, val in enumerate(arr):
while len(que) > 0 and que[0][0] <= i - w:
que.popleft()
while len(que) > 0 and val <= que[-1][1]:
que.pop()
que.append((i, val))
if i >= w-1:
ans1.append(que[0][1])
ans2 = []
que = deque()
for i, val in enumerate(arr):
while len(que) > 0 and que[0][0] <= i - w:
que.popleft()
while len(que) > 0 and val >= que[-1][1]:
que.pop()
que.append((i, val))
if i >= w-1:
ans2.append(que[0][1])
print(' '.join (map(str, ans1)))
print(' '.join (map(str, ans2)))