题解 | 谐距下标对

谐距下标对

https://www.nowcoder.com/practice/12fd032361704c978bcb9c2c2b3bb93d

import sys
from collections import Counter
n=int(input())
a=list(map(int,sys.stdin.readline().split()))
count=0
#aj-ai=j-i  -> aj-j=ai-i
ai_i=list()#只需记录ai-i然后将相等值进行排列组合就行( n*(n-1))/2
for i in range(n):
    ai_i.append(a[i]-i)
#记录ai-i出现相同值的个数
count = Counter(ai_i)
res=0
for key,val in count.items():
    res+=(val*(val-1))//2
print(res)



全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务