python 单调队列写法 卡空间 有无解决办法

P1440 求m区间内的最小值

Aoung @ 2022-03-10 09:47:54


arr = list(map(int,input().strip().split()))
# 求每一项前k个数的最小值
que = []
for i in range(n):
    if len(que) == 0:print(0)
    else:print(arr[que[0]])
    while len(que) > 0 and que[0] <= i - k: que.pop(0)
    while len(que) > 0 and arr[i] <= arr[que[-1]]: que.pop()
    que.append(i)

by xieyang1234 @ 2023-12-16 10:19:20

@Aoung 有,换c


|