class EqualPairCounter {
int numberOfEqualPairsLinearWithExtraArray(int[] input) {
int max = input[0];
int min = input[0];
for (int v : input) {
}
int shift = min;
int[] countArr = new int[max - min + 1];
for (int v : input) {
int countIdx = v - shift;
countArr[countIdx]++;
}
int res = 0;
for(int count : countArr) {
if (count > 1) {
res += (count - 1) * count / 2;
}
}
return res;
}
public static void main
(String[] args
) { int[] input = {1, 2, 4, 1, 2, 1, 2, -3, 4, 5, 1, 2, 4, 5, 1, -5, 2 ,5, 6, 7, -3, 7, 8, 2, 1, 2, -3, 4, 5};
int pairCount = new EqualPairCounter().numberOfEqualPairsLinearWithExtraArray(input);
System.
out.
println("Res: " + pairCount
);
// => 52 }
}