An array containing repeated elements, giving two numbers num1 and num2, and finding the minimum distance between the two numbers in the array
O (n) time complexity, O (1) space complexity
[Cpp]
Int minDistance (int A [], int size, int num1, int num2)
{
Int num1_last_pos =-1;
Int num2_last_pos =-1;
Int min_dist = INT_MAX;
For (int I = 0; I <size; ++ I)
{
If (A [I] = num1)
{
Num1_last_pos = I;
If (num2_last_pos> = 0)
Min_dist = min (min_dist, num1_last_pos-num2_last_pos );
}
If (A [I] = num2)
{
Num2_last_pos = I;
If (num1_last_pos> = 0)
Min_dist = min (min_dist, num2_last_pos-num1_last_pos );
}
}
Return min_dist;
}
Int minDistance (int A [], int size, int num1, int num2)
{
Int num1_last_pos =-1;
Int num2_last_pos =-1;
Int min_dist = INT_MAX;
For (int I = 0; I <size; ++ I)
{
If (A [I] = num1)
{
Num1_last_pos = I;
If (num2_last_pos> = 0)
Min_dist = min (min_dist, num1_last_pos-num2_last_pos );
}
If (A [I] = num2)
{
Num2_last_pos = I;
If (num1_last_pos> = 0)
Min_dist = min (min_dist, num2_last_pos-num1_last_pos );
}
}
Return min_dist;
}