# Hackerrank - Minimum Distances Solution

We define the distance between two array values as the number of indices between the two values. Given , find the minimum distance between any pair of equal elements in the array. If no such value exists, print .

For example, if , there are two matching pairs of values: . The indices of the 's are and , so their distance is . The indices of the 's are and , so their distance is .

**Function Description**

Complete the *minimumDistances* function in the editor below. It should return the minimum distance between any two matching elements.

minimumDistances has the following parameter(s):

*a*: an array of integers

**Input Format**

The first line contains an integer , the size of array .

The second line contains space-separated integers .

**Constraints**

**Output Format**

Print a single integer denoting the minimum in . If no such value exists, print .

**Sample Input**

```
6
7 1 3 4 1 7
```

**Sample Output**

```
3
```

**Explanation**

Here, we have two options:

- and are both , so .
- and are both , so .

The answer is .

### Solution in Python

```
from collections import defaultdict
def minimumDistances(a):
d = defaultdict(list)
for k,v in enumerate(a):
d[v].append(k)
md = 0
for v in d.values():
if not len(v)>1:
continue
if not md:
md = v[1]-v[0]
for i in range(len(v)-1):
dif = v[i+1]-v[i]
if dif<md:
md = dif
return md or -1
n = int(input())
a = list(map(int,input().split()))
print(minimumDistances(a))
```