The distance between two array values is the number of indices between them. Given , find the minimum distance between any pair of equal elements in the array. If no such value exists, return -1.
Example
arr = [3, 2, 1, 2, 3];
Minimum Distance = 2 (Distance between 2’s)
public static int minimumDistances(List<Integer> a) { Map<Integer, Integer> map = new HashMap<Integer, Integer>(); int minDistance = Integer.MAX_VALUE; for(int i = 0; i < a.size(); i++){ int element = a.get(i); if(!map.containsKey(element)){ map.put(element, i); }else{ int lastIndex = map.get(element); int distance = i - lastIndex; minDistance = Math.min(minDistance, distance); } } return minDistance == Integer.MAX_VALUE ? -1 : minDistance; }