将条件转化转化为ai-i=aj-j
使用HashMap存储相同的,然后组合。
参考:https://blog.nowcoder.net/n/8d233209d79f4a6297725d9f6f1c91d2
import java.util.Scanner;
import java.util.Map;
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n=in.nextInt();
Map<Integer,Integer> map=new HashMap<>();
for(int i=0;i<n;i++){
int a=in.nextInt();
int diff=a-i;
map.put(diff,map.getOrDefault(diff,0)+1);
}
long result=0;
for(int count:map.values()){
if(count>1){
result+=(long)count*(count-1)/2;
}
}
System.out.println(result);
}
}

京公网安备 11010502036488号