0905没写完-PAT (Basic Level) Practice Python解法 1083 是否存在相等的差

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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值