Sort by

recency

|

1394 Discussions

|

  • + 0 comments

    Here is my c++ solution, you can watch the explanation here : https://youtu.be/H8aBskFE2XI

    int minimumDistances(vector<int> a) {
        map<int, int>mp;
        int result = 1000;
        for(int i = 0; i < a.size(); i++){
            if(mp[a[i]]){
                result = min(result, i + 1 - mp[a[i]]);
            }
            mp[a[i]] = i+1;
        }
        return (result == 1000) ? -1:result;
    }
    
  • + 0 comments
        public static int minimumDistances(List<Integer> a) {
        // Write your code here
            int min=-1;
            for(int i=0;i<a.size()-1;i++){
                for(int j=i+1;j<a.size();j++){
                    if(a.get(i).equals(a.get(j))){
                        if(min<0 || j-i<min){
                            min=j-i;
                            break;
                        }
                    }
                }
            }
            return min;
        }
    
  • + 0 comments
    def minimumDistances(a):
        # Write your code here
        dict_idx = {}
        dict_len = {}
        for i in range(len(a)):
            if a[i] not in dict_idx:
                dict_idx[a[i]] = []
                dict_len[a[i]] = 0
            dict_idx[a[i]].append(i)
            dict_len[a[i]]  += 1
        if max(dict_len.values()) <= 1:
            return -1
        else:
            min_dist = float('inf')
            for value, length in dict_len.items():
                if length >= 2:
                    for i in range(length-1):
                        min_dist = min(dict_idx[value][i+1] - dict_idx[value][i],min_dist)
            return min_dist
    
  • + 0 comments

    Here is my Python solution!

    def minimumDistances(a):
        distances = []
        if len(a) == len(set(a)):
            return -1
        for num in range(len(a)):
            if a[num] in a[num + 1:]:
                distances.append(abs(num - (a[num + 1:].index(a[num]) + num + 1)))
        return min(distances)
    
  • + 0 comments

    Python Here is the magic

    def minimumDistances(a):
        d = {key:abs(a.index(key) - (len(a)-1-a[::-1].index(key))) for key in set(a) if a.count(key)>1}
        val = min(d.values()) if len(d)>0 else -1
        return val