PY且还做不出来的笨蛋,错了6个点,大佬别喷求帮忙
  • 板块P2032 扫描
  • 楼主m1cm1c
  • 当前回复5
  • 已保存回复5
  • 发布时间2022/8/19 14:24
  • 上次更新2023/10/27 14:36:49
查看原帖
PY且还做不出来的笨蛋,错了6个点,大佬别喷求帮忙
763985
m1cm1c楼主2022/8/19 14:24
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)

自己没太找到错误原因,求大佬指点

2022/8/19 14:24
加载中...