Sort by

recency

|

1401 Discussions

|

  • + 0 comments
    def minimum_distances(a):
        minimum = -1
        for i in range(len(a)):
            for j in range(i+1, len(a)):
                if a[i] == a[j]:
                    minimum = min(minimum, j-i) if minimum > 0 else j-i
                    break
        return minimum
    
  • + 0 comments
    def minimumDistances(a):
        # Write your code here
        
        temp = {}
        min_distance = -1
        
        for i in range(len(a)):
            if a[i] in temp:
                distance = i - temp[a[i]]
                if min_distance == -1 or distance < min_distance:
                    min_distance = distance
                temp[a[i]] = i
            else:
                temp[a[i]] = i
    
        return min_distance
    
  • + 0 comments

    //my very simple cpp solutuions//

    int minimumDistances(vector a) {

    vector<int>b;
    bool flag =1;
    
    for(int i = 0;i < a.size();i++){
        { int count;
            for(int j=i+1;j < a.size();j++){
                if(a[i] ==a[j]){
                    count=abs(j - i);
                     flag=0;
                }
            }b.push_back(count);
        }
    }
    if(flag == 1){
        return -1;
    }
    
    int min=b[0];
    for(int i = 0;i < b.size();i++){
        if(b[i] < min){
            min=b[i];
        }
    }
    
    return min;
    

    }

  • + 0 comments
    def minimumDistances(a):
        min_distance = length = len(a)
        d = dict()
        for index, el in enumerate(a):
            distance = abs(index - d.setdefault(el, index))
            if distance:
                min_distance = min(distance, min_distance)
    
        if length == min_distance:
            return -1
        return min_distance
    
  • + 0 comments
    public static int minimumDistances(List<Integer> arr) {
        Map<Integer, LinkedList<Integer>> itemDistanceMap = new HashMap<>();
        for(int i=0;i<arr.size(); i++) {
            int key = arr.get(i);
            if(itemDistanceMap.get(key) == null) {
                LinkedList<Integer> indices = new LinkedList<>();
                indices.add(i);
                itemDistanceMap.put(key, indices);
            } else {
                itemDistanceMap.get(key).add(i);
            }
        }
    
        int minDistance = Integer.MAX_VALUE;
    
        Collection<LinkedList<Integer>> distances = itemDistanceMap.values();
    
        for(LinkedList<Integer> distanceLst : distances) {
            if(distanceLst.size() > 1) {
                int distance = distanceLst.get(1) - distanceLst.get(0);
                minDistance = distance < minDistance ? distance : minDistance;
            }
        }        
        return minDistance == Integer.MAX_VALUE ? -1 : minDistance;
    }