Minimum Difference Pair Of Value (Two Pointer Technique)

#include<bits/stdc++.h>
using namespace std;
int main()
{
int n, m, x;

cout << "Enter First Array Size :: ";
cin >> n;

vector<int>a(n);

cout << "\nEnter First Array Element :: ";
for(int i=0;i<n;i++)
cin >> a[i];

cout << "\nEnter Second Array Size :: ";
cin >> m;

vector<int>b(m);

cout << "\nEnter Second Array Element :: ";
for(int i=0;i<m;i++)
cin >> b[i];

sort(a.begin(), a.end());
sort(b.begin(), b.end());

int i=0, j=0, difference = INT_MAX, first = -1, second = -1, f = 0;

while(i<n && j<m)
{
if(abs(a[i] - b[j]) < difference)
{
f = 1;
first = i;
second = j;

difference = abs(a[i] - b[j]);
}

if(difference == 0)
break;

if(a[i] < b[j])
i++;
else
j++;
}

cout << "\nMinimum Difference Between " << a[first] << " and " << b[second] << " is " << difference << "\n";


return 0;
}

Comments