Find Minimum difference pair [ Amazon Interview Question]

Problem:

Find the minimum difference between any pair in an unsorted  array.

#include <stdio.h>
#include <algorithm>
#include <iostream>

using namespace std;

int arr[105];
int res[100005];

int main() 
{
    int t,n,k,a;
	scanf("%d",&t);
	while(t--)
	{
        scanf("%d",&n);
        for(int i=0;i<105;i++)
            arr[i]=0;
        for(int i=0;i<n;i++)
        {
            scanf("%d",&a);
            arr[a]++;
        }
        //sort(arr,arr+n);
        k=0;
        for(int i=0;i<105;i++)
        {
            if(arr[i]==0)
            continue;
            for(int j=1;j<=arr[i];j++)
                res[k++]=i;
        }
        int MN=res[1]-res[0];
        for(int i=2;i<n;i++)
        {
            if(res[i]-res[i-1]<MN)
            MN=res[i]-res[i-1];
        }
        cout<<MN<<endl;
	}
	return 0;
}

 

Comments are closed.