/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
import java.util.HashMap;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public static int getMaxDistance(int[] arr) {
HashMap
<Integer, Integer
> firstIndexMap
= new HashMap
<>(); int maxDistance = 0;
for (int i = 0; i < arr.length; i++) {
int num = arr[i];
if (!firstIndexMap.containsKey(num)) {
firstIndexMap.put(num, i); // store first occurrence
} else {
int distance = i - firstIndexMap.get(num);
maxDistance
= Math.
max(maxDistance, distance
); }
}
return maxDistance;
}
public static void main
(String[] args
) { int[] arr = {1, 2, 3, 2, 1, 4, 5, 1};
System.
out.
println("Max distance: " + getMaxDistance
(arr
)); // Output: 7 - 0 = 7 }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsKLyogTmFtZSBvZiB0aGUgY2xhc3MgaGFzIHRvIGJlICJNYWluIiBvbmx5IGlmIHRoZSBjbGFzcyBpcyBwdWJsaWMuICovCmNsYXNzIElkZW9uZQp7CgogICAgcHVibGljIHN0YXRpYyBpbnQgZ2V0TWF4RGlzdGFuY2UoaW50W10gYXJyKSB7CiAgICAgICAgSGFzaE1hcDxJbnRlZ2VyLCBJbnRlZ2VyPiBmaXJzdEluZGV4TWFwID0gbmV3IEhhc2hNYXA8PigpOwogICAgICAgIGludCBtYXhEaXN0YW5jZSA9IDA7CgogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIGludCBudW0gPSBhcnJbaV07CgogICAgICAgICAgICBpZiAoIWZpcnN0SW5kZXhNYXAuY29udGFpbnNLZXkobnVtKSkgewogICAgICAgICAgICAgICAgZmlyc3RJbmRleE1hcC5wdXQobnVtLCBpKTsgLy8gc3RvcmUgZmlyc3Qgb2NjdXJyZW5jZQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgaW50IGRpc3RhbmNlID0gaSAtIGZpcnN0SW5kZXhNYXAuZ2V0KG51bSk7CiAgICAgICAgICAgICAgICBtYXhEaXN0YW5jZSA9IE1hdGgubWF4KG1heERpc3RhbmNlLCBkaXN0YW5jZSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiBtYXhEaXN0YW5jZTsKICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiAgICAgICAgaW50W10gYXJyID0gezEsIDIsIDMsIDIsIDEsIDQsIDUsIDF9OwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiTWF4IGRpc3RhbmNlOiAiICsgZ2V0TWF4RGlzdGFuY2UoYXJyKSk7IC8vIE91dHB1dDogNyAtIDAgPSA3CiAgICB9Cn0KCgk=