经验总结:
由于寻找的是重复的值,那么就是说这个差值的重复数得大于1。可以数组下标标记差值,对于的值为重复次数。
C++代码:
#include<bits/stdc++.h>
using namespace std;
int main() {
int n;
cin>>n;
int table[n] = {0};
for(int i=1;i<=n;i++){
int num;
cin>>num;
table[abs(num-i)]++;
}
for(int i=n-1;i>=0;i--){
if(table[i]>1){ //重复数要大于1
cout<<i<<" "<<table[i]<<endl;
}
}
return 0;
}