后面改了,贴个代码吧,可惜有一组越界的错误最后才发现少了个-1 import sys line = sys.stdin.readline() l = list(map(int, line.strip().split(","))) index = int(sys.stdin.readline().strip()) x = 0 while True:     if 2 ** x > len(l):         break     x += 1 l2 = [0] * len(l) down = True xx = 0 plus = 0 for i in range(len(l)-1):     if 2**xx+plus-1>=len(l)-1:         down = False         xx-=1         plus += 1     while 2**xx+plus >= 2**(xx+1):         if down:             xx += 1             if xx == x:                 xx = x-1                 down = False                 plus += 1         else:             xx -= 1             if xx == -1:                 xx = 0                 down = True                 plus += 1     l2[2**xx+plus-1] = l[i]     if down:         xx += 1         if xx == x:             xx = x - 1             down = False             plus += 1     else:         xx -= 1         if xx == -1:             xx = 0             down = True             plus += 1 l2[2**xx-2] = l[-1] for i in range(1, len(l2)):     if l2[i] == index:         print(l2[i-1])         sys.exit(0) print(-1)
点赞 评论

相关推荐

牛客网
牛客企业服务