将条件转化转化为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); } }