题解 | #疯狂队列#python

疯狂队列

https://www.nowcoder.com/practice/bafbf115b2754ab88af93489e40a8907

n=int(input())
l=list(map(int,input().split()))
ans=0
if n==1:
    print(ans)
else:
    ma,mi=max(l),min(l)
    res=[ma,mi]
    l.remove(ma)
    l.remove(mi)
    t=0
    while l:
        if len(l)==1:
            if abs(l[0]-res[0])>abs(l[0]-res[-1]):
                res.insert(0,l[0])
                l.pop()
            else:
                res.append(l[0])
                l.pop()
        else:
            if t==0:
                ma,mi=max(l),min(l)
                res.insert(0,mi)
                res.append(ma)
                l.remove(ma)
                l.remove(mi)
                t+=1
            else:
                ma,mi=max(l),min(l)
                res.insert(0,ma)
                res.append(mi)
                l.remove(ma)
                l.remove(mi)
                t-=1
    for i in range(1,n):
        ans+=abs(res[i]-res[i-1])
    print(ans)

全部评论

相关推荐

11-01 08:48
门头沟学院 C++
伤心的候选人在吵架:佬你不要的,能不能拿户口本证明过户给我。。球球了
点赞 评论 收藏
分享
牛客154160166号:9月底还给我发短信,好奇怪,我24届的
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务