求解代码publicstaticvoidmain(String[]args)throwsIOException{BufferedReaderbrnewBufferedReader(newInputStreamReader(System.in));StreamTokenizerinnewStreamTokenizer(br);PrintWriteroutnewPrintWriter(newOutputStreamWriter(System.out));in.nextToken();intn(int)in.nval;// 创建HashMap键差值diffInteger值该diff出现的次数IntegerMapInteger,IntegerhMapnewHashMap();for(inti0;in;i){in.nextToken();inta(int)in.nval;// diff 前整数 - 它的位置索引intdiffa-i;hMap.put(diff,hMap.getOrDefault(diff,0)1);}longtotal0;// 遍历Map中所有diff的出现次数for(intcount:hMap.values()){// 只有出现次数1的diff才能组成数对至少2个元素才能配对if(count1){// 相同 diff 的数两两之间都满足题目要求的条件// 所以统计每个 diff 的出现次数再算组合数就是答案。total(long)count*(count-1)/2;}}out.println(total);out.flush();out.close();br.close();}小贴士a j − a i j − i a_j -a_i j-iaj−aij−i➡️a j − j a i − i a_j - j a_i-iaj−jai−i