/*
功能:计算两个数组的最短距离
例子:x[] = {1, 3, 5, 7, 9};
y[] = {2, 6, 8};
min = 1;
作者:朱鑫
*/
#include <iostream>
#include <climits>
using namespace std;
int min_distance(int *, int *, int, int);
int main(void)
{
int *iArray1;
int *iArray2;
int m, n;
while (cin >> m >> n)
{
iArray1 = new int[m];
for (int i = 0; i < m; ++i)
{
cin >> iArray1[i];
}
iArray2 = new int[n];
for (int i = 0; i < n; ++i)
{
cin >> iArray2[i];
}
cout << min_distance(iArray1, iArray2, m, n) << endl;
}
return 0;
}
int min_distance(int *iArray1, int *iArray2, int m, int n)
{
int index1;
int index2;
int min= INT_MAX;
index1 = index2 = 0;
while (index1 < m && index2 < n)
{
if (iArray1[index1] == iArray2[index2])
{
return 0;
}
else if (iArray1[index1] > iArray2[index2])
{
min = (min<(iArray1[index1] - iArray2[index2])?
min:(iArray1[index1] - iArray2[index2]));
++index2;
}
else
{
min = (min<(iArray2[index2] - iArray1[index1])?
min:(iArray2[index2] - iArray1[index1]));
++index1;
}
}
return min;
}
两数组最短距离
最新推荐文章于 2023-11-26 17:47:23 发布