def deque(): #创建双端队列
d=[]
return d
def addFront(d,item): #前端加入一个元素
d.append(item)
def addRear(d,item): #后端加入一个元素
d.insert(0,item)
def removeFront(d): #前端移除一个元素
return d.pop()
def removeRear(d): #后段移除一个元素
return d.pop(0)
def size(d): #双端队列中元素数目
return len(d)
def isEmpty(d): #双端队列是否为空
if size(d)==0:
return 1
return 0
def Rear(d):
if size(d)!=0:
return d[0]
def Front(d):
if size(d)!=0:
return d[size(d)-1]
nk=input().split()
n=int(nk[0])
k=int(nk[1])
d1=deque()
xulie=input().split()
d2=deque()
re2=list()
for i in range(0,k-1):
if isEmpty(d2)==1:
addRear(d2,int(xulie[i]))
continue
while int(xulie[i])>=Rear(d2):
removeRear(d2)
if isEmpty(d2)==1:
break
addRear(d2,int(xulie[i]))
for i in range(k-1,n):
if isEmpty(d2)==1:
addRear(d2,int(xulie[i]))
re2.append(Front(d2))
continue
while int(xulie[i])>=Rear(d2):
removeRear(d2)
if isEmpty(d2)==1:
break
addRear(d2,int(xulie[i]))
re2.append(Front(d2))
if Front(d2)==int(xulie[i+1-k]):
removeFront(d2)
for i in re2:
print(i)
自己没太找到错误原因,求大佬指点