fork download
  1. // max distance between two occurance of same elem optimised using hashmap
  2. import java.util.*;
  3. import java.lang.*;
  4. import java.io.*;
  5.  
  6. class Ideone {
  7. public static int maxDistance(int[] arr) {
  8. Map<Integer, Integer> map = new HashMap<>();
  9. int maxDist = 0;
  10. for (int i = 0; i < arr.length; i++) {
  11. if (map.containsKey(arr[i])) {
  12. int dist = i - map.get(arr[i]);
  13. maxDist = Math.max(maxDist, dist);
  14. } else {
  15. map.put(arr[i], i);
  16. }
  17. }
  18.  
  19. return maxDist;
  20. }
  21.  
  22. public static void main(String[] args) throws java.lang.Exception {
  23. int[] arr = {1, 1, 2, 2, 2, 1};
  24. System.out.println("Max Distance: " + maxDistance(arr));
  25.  
  26. }
  27. }
  28.  
Success #stdin #stdout 0.13s 53656KB
stdin
Standard input is empty
stdout
Max Distance: 5