题解 | 谐距下标对

谐距下标对

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

using System;
using System.Collections.Generic;

public class Program {
    public static void Main() {
        int n =int.Parse(Console.ReadLine());
        string[] p=Console.ReadLine().Split();
        Dictionary<int, long> Dic=new Dictionary<int, long>();
        for (int i=0;i<n;i++){
            int a=int.Parse(p[i]);
            int key=a-i;
            if(Dic.ContainsKey(key)){
                Dic[key]++;
            }else{
                Dic[key]=1;
            }
        }
        long ans=0;
        foreach(var k in Dic){
            long cnt=k.Value;
            ans+=cnt *(cnt-1) /2;
        }
        Console.WriteLine(ans);
    }
}

全部评论

相关推荐

哈哈哈,你是老六:看着项目比较少
点赞 评论 收藏
分享
再懒也要睡懒觉:大学4年玩的挺爽的哈😅
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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