题目描述
已知元素从小到大排列的两个数组f[]和g[],请写出一个程序算出两个数组彼此之间差的绝对值中最小的一个,这叫做数组的距离
输入
第一行为两个整数m, n(1≤m, n≤1000),分别代表数组f[], g[]的长度。
第二行有m个元素,为数组f[]。
第三行有n个元素,为数组g[]。
输出
数组的最短距离
样例输入
5 5 1 2 3 4 5 6 7 8 9 10
样例输出
1
当你测试数据时,利用2 3 0 1 2 3 4 来测试查看一下结果,此题还会优化(仅参考)
#include<iostream>//此题有问题,ojac没问题。
using namespace std;
int M(int n)
{
if(n<0)
return -n;
else
return n;
}
int main(){
int x[1000];
int y[1000];
int a,b,c;
cin>>a>>b;
for(int i=0; i<a; i++)
{
cin>>x[i];
}
for(int j=0; j<b; j++)
{
cin>>y[j];
}
int t,min=2000;
for(int l=0; x[l]; l++)
{
for(int k=0; y[k]; k++)
{
t=M(y[k]-x[l]);
if(t<min)
{
min=t;
}
}
}
cout<<min<<endl;
return 0;
}