0905没写完-PAT (Basic Level) Practice Python解法 1083 是否存在相等的差
03没过
做个N个列表明显超时 10000个数字肯定不行
要改
怎么在不用多重列表的情况下链接两个数字,不要再一个排序操作之后就丢失原顺序了(记得index的操作),直觉是链表相关。(睡醒了看,现在脑子不太清醒)
n = int(input())
ckl = list(map(int,input().split()))
new = []
otpsz = []#数字
otpcs = []#次数
otp = []
for i in range(n):
new.append(abs(ckl[i]-(i+1)))
#print(new)
for k in new:#差值集合
if k in otpsz:
a = otpsz.index(k)
otpcs[a]+=1
else:
otpsz.append(k)
otpcs.append(1)
for i in range(len(otpsz)):
otp.append([otpsz[i],otpcs[i]])
#print(otp)
otp.sort(reverse=True)#默认False升序
for each in otp:
if each[-1] > 1:
print(each[0],each[-1])
else:
break